在指定列上加入两个列表

And*_*ley 4 c# list

我试图在ID列上加入两个列表(flist和slist).列表定义,类定义,列表内容和所需结果如下所示.

List<first> flist= new List<first>();
List<second> slist= new List<second>();


public class first
{
   public string name { get; set; }
   public int ID{ get; set; }
   public string itemAttr { get; set; }
}
public class second
{
   public int ID{ get; set; }
   public string itemAttr{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

列出内容

flist:
apples | 1
bananas| 2
trees  | 3

slist:
1      | fruit
3      | not-fruit
Run Code Online (Sandbox Code Playgroud)

期望的结果:

flist:
apples   |   1     | fruit
bananas  |   2     |
trees    |   3     | not-fruit
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 10

List<first> flist= new List<first>();
List<second> slist= new List<second>();

var result = from f in flist
             join s in slist on f.ID equals s.ID into g
             select new {
                 f.name,
                 f.ID,
                 itemAttr = g.Any() ? g.First().itemAttr : null
             };
Run Code Online (Sandbox Code Playgroud)

  • 太棒了.对于有相同问题的任何人,您可以使用foreach(结果中的var v)访问结果. (2认同)