C#List 1有一些记录,列表2包含列表3必须有0 1

时间:2016-10-20 10:25:16

标签: c# list

我的C#列表包含对象:

class Bot {
string name;
string oid; 
}

新名单,包含两个名为:

的机器人
0, name = Pro, oid = 100
1, name = Noob, oid = 200
2, name = Tard, oid = 300

我还有一个包含OID列表的列表(通过一些奇怪的方式选择) 列表是这样的:

0, 200
1, 300

我需要创建一个这样的新列表:

0,0
1,1
2,1

保持列表1索引并且列表2与列表1的OID匹配,如果匹配,则必须显示1,否则为0.

我该如何开始这样做?

1 个答案:

答案 0 :(得分:0)

您可以使用Select的重载,该重载也会返回索引:

var result = myBots.Select((x, i) => new 
{ 
    Index = i, 
    Value = list2.Any(y => y.oid == x.oid) ? 1: 0 
});

但是,您可以考虑使用boolean而不是零或一个来指示元素是否匹配:

var result = myBots.Select((x, i) => new 
{ 
    Index = i, 
    ContainedInOtherlist = list2.Any(y => y.oid == x.oid) 
});