C# 如何获取与where子句匹配的行索引?

C# 如何获取与where子句匹配的行索引?,c#,winforms,filter,C#,Winforms,Filter,我有这样一个密码: var result = list3.Where(Srodek => list4.Any(x => x == Srodek.Srodek.category1)).ToList(); 我希望能够得到每一行的索引,满足这个子句。我怎么做?可能吗?列表3是我的主列表。Select有一个签名,该签名接受一个谓词,该谓词将项及其索引作为输入参数。在筛选列表之前,您可以使用它保存索引: var result = list3 .Select((srodek, inde

我有这样一个密码:

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

我希望能够得到每一行的索引,满足这个子句。我怎么做?可能吗?列表3是我的主列表。

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();

清单3是我保存所有信息的主列表。我想根据我的类的字段类别过滤它。清单4包含用户对类别的选择。例如Dog、Cat等。现在过滤工作正常,但我想得到与where子句匹配的索引。我可以这样做吗?好的,它工作得很好,但我现在如何用我从Select子句收到的索引更改每行的颜色呢?这只是给你们一个索引列表。但是,是的,你可以对清单做任何你想做的事情。对我来说,这听起来像是你会在列表项本身做的事情,但是,在这种情况下,你不需要索引?好的,我设法解决了这个问题。谢谢你的帮助!