web-dev-qa-db-ja.com

Linqを使用してリスト内のオブジェクトのインデックスを取得します

私はLinqが初めてです。得意先のtable.ID、FullName、Organization、Locationが列です。 Sqliteにクエリがあり、2500件の顧客レコードが返されます。この結果セットから、ID = 150の顧客のインデックスを見つける必要があります。その顧客のリスト。クエリの結果セットは組織ごとに並べられます。 FindIndexとIndexOfを試しましたが、前者ではエラーが発生し、後者では-1が発生しました。それでは、どうすればいいのでしょうか?ありがとう。

38
RookieAppler

LINQを使用する必要はありません。 FindIndex of List<T>

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

Linq to Objectsのオーバーロード Select メソッド

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

メモリ内にList<Customer>このLinq to Objectsメソッドを使用します。

32