使用Lambda Expression创建自定义列表

Meg*_*ind 3 c# linq lambda

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

public class CustomClass
{
   public int EmployeeID{get;set;}
   public int ClientID{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我必须创建列表的两个参数是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
  });
}
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 5

我在ToList这里用:

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

它可能不会更有效率,但它会更清晰 - 我认为这更重要.

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

List<CustomClass> lst = new List<CustomClass>(EmployeeIDList.Count);
foreach (int employeeID in EmployeeIDList) {
    lst.Add(new CustomClass
        {
            ClientID = clientID, 
            EmployeeID = employeeID
        });
}
Run Code Online (Sandbox Code Playgroud)