我有一个列表,其中我存储了名为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的整数。
由于
答案 0 :(得分:3)
听起来你想要这样的东西:
var query = list.Select((value, index) => new { value, index })
.Where(pair => !exclusions.Contains(pair.value.ID))
.Select(pair => pair.index)
这将为所有提供匹配的索引值;如果您只想要一个,则可以使用First
,FirstOrDefault
等。请注意,要按名称进行匹配,您只需要延长Where
来电。
如果这不是您想要的,请澄清您的问题。