2011-06-26 73 views
24

有沒有辦法從列表中獲取int的索引? 尋找類似list1.FindIndex(5)的地方,我想在列表中找到5的位置。在列表中找到int的索引

+0

什麼是列表1的類型? –

回答

38

使用列表的.IndexOf()方法。該方法的規格可在MSDN上找到。

+1

謝謝。 (find或者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); 
//} 
//);