5 Stimmen

Benutzerdefinierte Liste mit Lambda-Ausdruck erstellen

Ich muss eine Liste eines benutzerdefinierten Typs mit Eigenschaften vom Typ int erstellen, int

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

Zwei Parameter, die ich zur Erstellung der Liste benötige, sind List und int

Meine Methode ist

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

Ich möchte dazu keine Schleife laufen lassen. Gibt es eine effizientere Möglichkeit, dies zu tun?

7voto

Mark Byers Punkte 761508

Ich würde die ToList hier:

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

Es wird wahrscheinlich nicht effizienter sein, aber es wird klarer sein - was meiner Meinung nach wichtiger ist.

Wenn Sie wirklich Effizienz wünschen, dann ist die Lösung, die Sie anscheinend bereits abgelehnt haben, wahrscheinlich die beste - eine einfache Schleife:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X