c#列表1中有一些列表2包含的记录,列表3必须有相应的0

本文关键字:列表 2包 记录 | 更新日期: 2023-09-27 18:14:03

我的c#列表包含object:

class Bot {
string name;
string oid; 
}

new List with 2 bot named:

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

其中维护list 1索引,并且list 2与list 1的OID匹配,如果匹配则必须显示1,否则显示0。

我应该如何开始做这件事?

c#列表1中有一些列表2包含的记录,列表3必须有相应的0

您可以使用来自Select的重载,它也返回一个索引:

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

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

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