使用Lambda Expression创建自定义列表

时间:2012-04-07 04:32:07

标签: c# linq lambda

我需要创建一个自定义类型的List,其属性类型为int,int

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

我必须创建列表的两个参数是List和int

我的方法是

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

我不想运行循环来执行此操作,是否有更有效的方法来执行此操作。

1 个答案:

答案 0 :(得分: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
        });
}