如何使用LINQ lambda组合多个列表

问题描述 投票:3回答:2

我有两个清单:

list1 = [a,b,c,4]
list2 = [1,23,5,6]

现在我需要使用linq lambda创建一个匿名对象。

就像是。

list1 = DataTable.AsEnumerable().toList();
list2 = DataTable.AsEnumerable().toList();

var result = list1.Where(x => x.Field<int>(1) == 2018).Select(x => new[] {
new {x = "XYZ", y = x[0], z = list2[0]},
....}



}

我该怎么做呢?

c# linq
2个回答
0
投票

你需要Zip Linq方法,考虑这个例子:

int[] list1 = {1, 2, 3};
string[] list2 = {"a", "b", "c"};

var result = list1.Zip(list2, (i, s) => new {y = i, z = i});

0
投票

你的代码很好,它只需要一些小的修复:

            string [] list1 = { "a", "b", "c", "4" };
            int[] list2 = { 1, 23, 5, 6 };
            object[] list3 = { "test", DateTime.Now, 56 };

            var result = list1.Where(x => x == "a").Select(x =>
                  new { x = "XYZ", y = x[0], z = list2[0], t = list3[1] }).ToList();
© www.soinside.com 2019 - 2024. All rights reserved.