如何在Collection <T>继承类中找到元素索引?
你如何找到Collection继承类中元素的索引?
public class MyCollection : Collection<MyClass>
{
// implementation here
}
我试图在集合上使用.FindIndex,但没有成功:
int index = collectionInstance.FindIndex(someLambdaExpression);
任何其他方式来实现这一目标?
如果您直接使用元素,则可以使用IndexOf来检索它。 但是,这不适用于通过lambda找到元素索引。
但是,您可以使用LINQ:
var index = collectionInstance.Select( (item, index) => new {Item = item, Index = index}).First(i => i.Item == SomeCondition()).Index;
为什么调用Collection<T>.IndexOf
不够?
如果可能的话(抱歉,如果不是,并且受限于以前的选择),并且如果您的用例能够使用索引,则最好使用通用列表(即:List)。
那么你将能够正确使用FindIndex。
public class MyList : List<MyClass>
{
// implementation here
}
...
int index = listInstance.FindIndex(x => x.MyProperty == "ThePropertyValueYouWantToMatch");
链接地址: http://www.djcxy.com/p/53933.html
上一篇: How do you find an element index in a Collection<T> inherited class?