我的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.
我该如何开始这样做?
答案 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)
});