Frage Erhalte den Index des Objekts in einer Liste mit Linq [duplizieren]


Diese Frage hat hier bereits eine Antwort:

Ich bin neu bei Linq. Ich habe eine Tabelle Customers.ID, FullName, Organisation, wo die Spalten stehen. Ich habe eine Anfrage in Sqlite, die mir 2500 Datensätze von Kunden zurückgibt. Ich muss den Index des Kunden finden, wo ID = 150 zum Beispiel von dieser Ergebnismenge. Es ist eine Liste von Kunden. Die Ergebnismenge der Abfrage ist nach Organisation geordnet. Ich habe versucht mit FindIndex und IndexOf, aber Fehler für die ehemalige und -1 für letztere. Also, wie soll es gemacht werden? Vielen Dank.


35
2017-08-07 16:31


Ursprung


Antworten:


Sie müssen nicht verwenden LINQkannst du benutzen FindIndex von List<T>:

int index = customers.FindIndex(c => c.ID == 150);

70
2017-08-07 16:40



Linq to Objects ist überlastet Wählen Methode

customers.Select((c,i) => new { Customer = c, Index = i })
         .Where(x => x.Customer.ID == 150)
         .Select(x => x.Index);

Beachten Sie, dass Sie sich im Speicher befinden sollten List<Customer> Verwenden Sie diese Methode Linq to Objects.


26
2017-08-07 16:35