【问题标题】:How to get row index that match my where clause? [closed]如何获取与我的 where 子句匹配的行索引? [关闭]
【发布时间】:2013-08-28 06:25:00
【问题描述】:

我有这样的代码:

var result = list3.Where(Srodek => list4.Any(x => x == Srodek.Srodek.category1)).ToList();

并且我希望能够获得满足此子句的每一行的索引。我该怎么做?可能吗? List3 是我的主要列表。

【问题讨论】:

  • List3 是我保存所有信息的主要列表。我想根据我班级的字段类别对其进行过滤。 List4 保存用户选择的类别。例如 Dog、Cat 等。现在过滤工作正常,但我想获取与此 where 子句匹配的索引。我可以这样做吗?

标签: c# winforms filter


【解决方案1】:

Select 具有接受谓词的签名,该谓词将项目及其索引作为输入参数。您可以在过滤列表之前使用它来保存索引:

var result = list3
    .Select((srodek, index) => new {
       Index = index,
       Match = list4.Any(x => x == srodek.Srodek.category1)
    })
    .Where(x => x.Match)
    .Select(x => x.Index)
    .ToList();

【讨论】:

  • 好的,它工作得很好,但是我现在如何使用从 Select 子句收到的这个索引更改每一行的颜色?
  • 这只是给你一个索引列表。但是,是的,您可以对列表做任何您想做的事情。对我来说,这听起来像是你会在列表项本身上做的事情,但在这种情况下你就不需要索引了?
  • 好的,我设法解决了这个问题。感谢您的帮助!
猜你喜欢
  • 2018-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 2016-04-30
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多