2011-06-26 11 views
24

intのインデックスをリストから取得する方法はありますか? list1.FindIndex(5)のようなものを探しています。リスト内の5の位置を探したいと思っています。リスト内のintのインデックスを見つける

+0

リスト1のタイプは何ですか? –

答えて

38

リストの.IndexOf()メソッドを使用します。メソッドの仕様はMSDNにあります。

+1

ありがとうございます。それとfindの違いは何ですか?(または、カスタムの比較演算子を使用することができます) – soandos

+1

申し訳ありませんが、FindIndexが見つかりませんでした。 – soandos

+5

@soandos 'FindIndex'は本質的に同じですが、述語を使うことができます。これは、例えば、より複雑な構造を持つオブジェクトを比較する場合に便利です。 – jonsca

38

FindIndexは、あなたが探しているもののようだ:

FindIndex(Predicate<T>)

使用法:

list1.FindIndex(x => x==5); 

例:

// given list1 {3, 4, 6, 5, 7, 8} 
list1.FindIndex(x => x==5); // should return 3, as list1[3] == 5; 
+0

プリミティブ型のFindIndex述語で等価を再定義する必要はありません。このメソッドは、等価演算子が定義されていない場合や、検索の比較ロジックが等価と異なる場合にのみ使用してください。 – Dan

+1

最初の一致のインデックスを返します。見つからなければ-1を返します。 –

4
List<string> accountList = new List<string> {"123872", "987653" , "7625019", "028401"}; 

int i = accountList.FindIndex(x => x.StartsWith("762")); 
//This will give you index of 7625019 in list that is 2. value of i will become 2. 
//delegate(string ac) 
//{ 
// return ac.StartsWith(a.AccountNumber); 
//} 
//); 
関連する問題