Auswählen von Elementen aus der generischen Liste basiert auf wahren Zustand aus einer anderen Liste
Frage ich mich, ob es wäre, LINQ/Lambda-Ausdruck Lösung für das problem unten.
Habe ich 2 generische Listen
Liste 1
public class Data
{
public string ID { get; set;}
public string Package { get; set;}
}
List<Data> listData = new List<Data>();
Data data1 = new Data { ID = "1", Package = "Test" };
Data data2 = new Data { ID = "2", Package = "Test2" };
Data data3 = new Data { ID = "3", Package = "Test2" };
Data data4 = new Data { ID = "4", Package = "Test4" };
listData.Add(data1);
listData.Add(data2);
listData.Add(data3);
listData.Add(data4);
Liste 2
List<int> listFilter = List<int>();
listFilter.Add(1);
listFilter.Add(0);
listFilter.Add(0);
listFilter.Add(1);
Ich würde gerne filter "listData" basiert auf der wahren (1) Kriterien von "listFilter". Für das obige Beispiel, ich muss in der Lage sein zu ziehen data4 data1 und in eine neue Liste.
Im moment bin ich mit einer for-Schleife um dies zu erreichen, wie unten beschrieben.
List<Data> listResult = new List<Data>();
for(int index=0; index<listData.Count; index++)
{
if(listFilter[index]==1)
{
listResult.Add(listData[index]);
}
}
Ich würde mich freuen, wenn jemand mir zeigen könnte LINQ oder Lambda-Ausdruck zu erreichen.
Dank
Balan
Die
Where()
Methode hat eine überladung, geht der index für den Zustand delegieren, also, das ist wahrscheinlich alles, was Sie brauchen.
InformationsquelleAutor balan | 2012-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beachten Sie, dass dies fehlschlagen wird, wenn eine länger als listFilter, wie Sie Ihre code.
InformationsquelleAutor Yuriy Faktorovich
Im Allgemeinen Fall können Sie tun:
InformationsquelleAutor Ani
Referenz:
http://msdn.microsoft.com/en-us/library/bb548547.aspx
InformationsquelleAutor Meligy