如何在 Collection中查找元素索引继承类?

发布于 2024-10-20 01:49:05 字数 294 浏览 1 评论 0原文

如何找到 Collection 继承类中元素的索引?

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

我尝试在集合上使用 .FindIndex 但没有成功:

 int index = collectionInstance.FindIndex(someLambdaExpression);

还有其他方法可以实现此目的吗?

How do you find the index of an element in a Collection inherited class?

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

I tried to use .FindIndex on the collection but no success:

 int index = collectionInstance.FindIndex(someLambdaExpression);

Any other ways to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦在夏天 2024-10-27 01:49:05

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

不过,您可以使用 LINQ:

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

If you have the element directly, you can use IndexOf to retrieve it. However, this won't work for finding an element index via a lambda.

You could use LINQ, however:

var index = collectionInstance.Select( (item, index) => new {Item = item, Index = index}).First(i => i.Item == SomeCondition()).Index;
酒几许 2024-10-27 01:49:05

如果可能(抱歉,如果不是,并且您受到以前选择的限制),并且如果您的用例能够使用索引,那么最好使用通用列表(即:列表)。

然后你就可以正确使用FindIndex了。

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

...

int index = listInstance.FindIndex(x => x.MyProperty == "ThePropertyValueYouWantToMatch");

If possible (sorry if it's not, and you're constrained by previous choices), and if your use case is to be able to work with indexes, you would be better off using generic lists (i.e.: List).

Then you would be able to use FindIndex correctly.

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

...

int index = listInstance.FindIndex(x => x.MyProperty == "ThePropertyValueYouWantToMatch");
最冷一天 2024-10-27 01:49:05

是否有理由调用 Collection.IndexOf 还不够吗?

Is there a reason why calling Collection<T>.IndexOf is insufficient?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文