如何使用LINQ Lambda合并多个列表

时间:2019-02-26 22:14:15

标签: c# linq

我有两个列表:

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]},
....}



}

我该怎么做?

2 个答案:

答案 0 :(得分: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});

答案 1 :(得分: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();