EDIT: Nếu bạn chỉ sử dụng một List<>
và bạn chỉ cần chỉ mục, sau đó List.FindIndex
thực sự là cách tiếp cận tốt nhất. Tôi sẽ để lại câu trả lời này ở đây cho những người cần bất kỳ điều gì khác biệt (ví dụ: trên đầu trang của bất kỳ IEnumerable<>
) nào.
Sử dụng sự quá tải của Select
mà phải mất một chỉ mục trong các vị, vì vậy bạn chuyển đổi danh sách của bạn thành một (chỉ số, giá trị) cặp:
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 nó ở nhiều nơi, bạn có thể dễ dàng viết phương thức mở rộng của riêng mình giống như Where
, nhưng thay vì trả lại các mục gốc, nó sẽ trả về chỉ mục của các mục đó các mục khớp với vị từ.
Nguồn
2013-08-01 13:42:28
Tác phẩm này không hoạt động nhưng không phải LINQ, tuy nhiên +1 –
Còn 'int index' thì sao? –
@DylanChensky anh ấy đang viết mã JS quá nhiều – lenny