在列表中搜索索引

时间:2011-07-12 17:49:14

标签: c#

我有一个列表,其中我存储了名为Name,ID,Attendance属性的对象。我想根据名称搜索获取列表中所有对象的索引值。这是简单的部分。除了按名称搜索之外,我还希望将索引结果进一步缩小到只有那些ID属性不在要忽略的ID的排除列表中的对象。例如:

Exclusion List:
123
456
981

Main List of Objects
Object 1 with Name Property = Hi, ID = 123, Attendance = Present
Object 2 with Name Property = Ho, ID = 323, Attendance = Present
Object 3 with Name Property = He, ID = 456, Attendance = Present

以上只是数据结构的表示。排除列表是整数列表,因此是ID属性等。我在主列表上搜索的结果应该返回列表中找到的对象位置的INDEX整数。在这种情况下,Return应该是一个值为1的整数。

由于

1 个答案:

答案 0 :(得分:3)

听起来你想要这样的东西:

var query = list.Select((value, index) => new { value, index })
                .Where(pair => !exclusions.Contains(pair.value.ID))
                .Select(pair => pair.index)

这将为所有提供匹配的索引值;如果您只想要一个,则可以使用FirstFirstOrDefault等。请注意,要按名称进行匹配,您只需要延长Where来电。

如果这不是您想要的,请澄清您的问题。