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

Schreibe einen Kommentar