C# 如何在集合中找到元素索引<;T>;继承类?

C# 如何在集合中找到元素索引<;T>;继承类?,c#,inheritance,generic-collections,C#,Inheritance,Generic Collections,如何在集合继承类中找到元素的索引 public class MyCollection : Collection<MyClass> { // implementation here } 是否有其他方法可以实现此目的?如果您直接拥有该元素,则可以使用来检索它。但是,这对于通过lambda查找元素索引是不起作用的 但是,您可以使用LINQ: var index = collectionInstance.Select( (item, index) => new {Item =

如何在集合继承类中找到元素的索引

public class MyCollection : Collection<MyClass>
{
   // implementation here
}

是否有其他方法可以实现此目的?

如果您直接拥有该元素,则可以使用来检索它。但是,这对于通过lambda查找元素索引是不起作用的

但是,您可以使用LINQ:

var index = collectionInstance.Select( (item, index) => new {Item = item, Index = index}).First(i => i.Item == SomeCondition()).Index;

调用不足有什么原因吗?

如果可能的话(如果没有,很抱歉,而且您受到以前选择的限制),并且如果您的用例能够使用索引,您最好使用通用列表(即:List)

这样您就能够正确使用FindIndex了

public class MyList : List<MyClass>
{
    // implementation here
}

不幸的是,事情的本质是我现在无法做出这样的决定……我希望我们生活在一个完美的世界,哈哈哈,这与这个答案有关:
public class MyList : List<MyClass>
{
    // implementation here
}
int index = listInstance.FindIndex(x => x.MyProperty == "ThePropertyValueYouWantToMatch");