EDIT: Nếu bạn chỉ sử dụng một List<>
và bạn chỉ cần chỉ mục, thì đó List.FindIndex
thực sự là cách tiếp cận tốt nhất. Tôi sẽ để câu trả lời này ở đây cho những người cần bất cứ điều gì khác biệt (ví dụ như trên bất kỳ IEnumerable<>
).
Sử dụng quá tải trong Select
đó có một chỉ mục trong vị ngữ, do đó bạn chuyển đổi danh sách của mình thành một cặp (chỉ mục, giá trị):
var pair = myList.Select((Value, Index) => new { Value, Index })
.Single(p => p.Value.Prop == oProp);
Sau đó:
Console.WriteLine("Index:{0}; Value: {1}", pair.Index, pair.Value);
Hoặc nếu bạn chỉ muốn chỉ mục và bạn đang sử dụng điều này ở nhiều nơi, bạn có thể dễ dàng viết phương thức tiện ích mở rộng của riêng mình Where
, nhưng thay vì trả về các mục ban đầu, nó sẽ trả về các chỉ mục của các mục phù hợp với vị từ.
int index
?