1. ホーム
  2. c#

[解決済み】リスト内のアイテムのインデックスを一度に取得するにはどうすればいいですか?

2022-04-01 14:05:28

質問

リスト内の項目のインデックスをループさせずに見つけるにはどうしたらいいですか?

現状では、インデックスを取得するためだけに、同じ項目を2回リストで検索するというのは、あまり良いとは言えません。

var oProp = something;

int theThingIActuallyAmInterestedIn = myList.IndexOf(myList.Single(i => i.Prop == oProp));

解決方法は?

はどうでしょうか? リスト.FindIndexメソッド :

int index = myList.FindIndex(a => a.Prop == oProp);

このメソッドは線形探索を行うので、このメソッドは O(n)演算、ただしnはCount。

項目が見つからない場合は、-1 を返す