Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表的LINQ连接列表_C#_Linq_List - Fatal编程技术网

C# 列表的LINQ连接列表

C# 列表的LINQ连接列表,c#,linq,list,C#,Linq,List,使用LINQ,如何连接(内部连接)列表数据列表 示例数据: List<List<string>> datas1 = new List<List<string>>(); datas1.add(new List() { "1", "Item 1" }); datas1.add(new List() { "2", "Item 2" }); datas1.add(new List() { "3", "Item 3" }); List<List<

使用LINQ,如何连接(内部连接)列表数据列表

示例数据:

List<List<string>> datas1 = new List<List<string>>();
datas1.add(new List() { "1", "Item 1" });
datas1.add(new List() { "2", "Item 2" });
datas1.add(new List() { "3", "Item 3" });

List<List<string>> datas2 = new List<List<string>>();
datas1.add(new List() { "1", "20" });
datas1.add(new List() { "2", "10" });
我试着

var result = datas1
      .Join(datas2, d1 => datas1[0], d2 => datas2[0], (d1, d2) => { d1 })
      .ToList();
我得到空结果,然后尝试:

var result = datas1
          .Join(datas2, d1 => datas1[0][0], d2 => datas2[0][0], (d1, d2) => { d1 })
          .ToList();

我得到了每个数据1的重复结果。

您没有在联接中使用lambda表达式中的参数-您使用了
datas1[0]
datas2[0]
而不是
d1[0]
d2[0]
。此外,您对结果的投影不会给出您所说的想要的结果

您的查询应如下所示:

var result = datas1
      .Join(datas2, d1 => d1[0], d2 => d2[0], 
            (d1, d2) => new List<string> { d1[0], d1[1], d2[1] })
      .ToList();

然后,您还可以将数字存储在
int
值中,而不是字符串中…

我尝试使用与代码相同但没有新列表的参数,结果也是空的。您只向
datas1
添加项:)
//Sample data
List<List<string>> datas1 = new List<List<string>>();
datas1.Add(new List<string>() { "1", "Item 1" });
datas1.Add(new List<string>() { "2", "Item 2" });
datas1.Add(new List<string>() { "3", "Item 3" });

List<List<string>> datas2 = new List<List<string>>();
datas2.Add(new List<string>() { "1", "20" });
datas2.Add(new List<string>() { "2", "10" });
var result = (from d1 in datas1
              join d2 in datas2 on d1[0] equals d2[0]
              select new List<string> { d1[0], d1[1], d2[1] })
             .ToList();
var result = datas1
      .Join(datas2, d1 => d1.Id, d2 => d2.Id, 
            (d1, d2) => new { d1.Id, d1.Name, d2.Description })
      .ToList();
//Sample data
List<List<string>> datas1 = new List<List<string>>();
datas1.Add(new List<string>() { "1", "Item 1" });
datas1.Add(new List<string>() { "2", "Item 2" });
datas1.Add(new List<string>() { "3", "Item 3" });

List<List<string>> datas2 = new List<List<string>>();
datas2.Add(new List<string>() { "1", "20" });
datas2.Add(new List<string>() { "2", "10" });
//Query
var result = (from d1 in datas1
              join d2 in datas2 on d1[0][0] equals d2[0][0]
              select new List<string> { d1[0], d1[1], d2[1] })
             .ToList();