2012-04-07 34 views
3

我需要创建int类型的属性的自定义类型的列表,诠释,我要创建列表清单创建使用自定义列表Lambda表达式

public class CustomClass 
{ 
    public int EmployeeID{get;set;} 
    public int ClientID{get;set;} 
} 

两个参数和int

我的方法是

CreateCustomClassList(List<int> EmployeeIDList, int clientID} 
{ 
List<CustomClass> lst=new List<CustomClass>(); 
EmployeeIDList.ForEach 
    (u=>lst.Add(new CustomClass 
    { 
    ClientID=clientID, 
    EmployeeID=u 
    }); 
} 

我不想运行循环来做到这一点,有没有更有效的方法来做到这一点。

+0

你'CustomClass'只有私有成员。那是故意的吗?你的方法也没有返回类型? – 2012-04-07 04:38:55

+0

@MarkByers没有错,我已经更新了。 – MegaMind 2012-04-07 04:43:45

回答

5

我会使用ToList这里:

List<CustomClass> lst = EmployeeIDList 
    .Select(employeeID => new CustomClass 
    { 
     ClientID = clientID, 
     EmployeeID = employeeID 
    }) 
    .ToList(); 

它可能不会是更有效,但它会更清楚 - 这在我看来是更重要的。

如果你真的效率那么你最好的选择可能是,你已经似乎已经拒绝了解决方案 - 一个简单的循环:

List<CustomClass> lst = new List<CustomClass>(EmployeeIDList.Count); 
foreach (int employeeID in EmployeeIDList) { 
    lst.Add(new CustomClass 
     { 
      ClientID = clientID, 
      EmployeeID = employeeID 
     }); 
} 
+0

感谢马克,你是否暗示'for循环'是有效的,'选择' – MegaMind 2012-04-07 04:48:01

+0

感谢Kevin的宝贵意见 – MegaMind 2012-04-07 05:34:37