2011-06-26 45 views

Trả lời

38

Sử dụng phương pháp .IndexOf() của danh sách. Thông số kỹ thuật cho phương pháp có thể được tìm thấy trên MSDN.

+1

Cảm ơn bạn. Sự khác biệt giữa điều đó và tìm (hoặc tìm chỉ cho phép bạn sử dụng một bộ so sánh tùy chỉnh) là gì? – soandos

+1

Xin lỗi, ý tôi là FindIndex không tìm thấy. – soandos

+5

@soandos 'FindIndex' về cơ bản là giống nhau, ngoại trừ bạn có thể sử dụng vị từ, có thể có ích khi, ví dụ, so sánh các đối tượng có thể có cấu trúc phức tạp hơn. – jonsca

38

FindIndex dường như những gì bạn đang tìm kiếm:

FindIndex(Predicate<T>)

Cách sử dụng:

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

Ví dụ:

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

Không cần phải xác định lại sự bình đẳng thông qua vị từ FindIndex cho các kiểu nguyên thủy. Phương pháp này chỉ nên được sử dụng khi không có toán tử bình đẳng nào được xác định hoặc khi logic so sánh cho tìm kiếm khác với bình đẳng. – Dan

+1

Trả về chỉ mục của trận đấu đầu tiên hoặc -1 nếu không tìm thấy –

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); 
//} 
//); 
Các vấn đề liên quan