简体   繁体   English

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

[英]How to combine multiple lists using LINQ lambda

I have two lists: 我有两个清单:

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

Now I need to create an anonymous object using linq lambda. 现在我需要使用linq lambda创建一个匿名对象。

Something like. 就像是。

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



}

How do I go about doing this? 我该怎么做呢?

You need Zip Linq method, consider this example: 你需要Zip Linq方法,考虑这个例子:

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

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

Your code is fine, it just needs some small fixes: 你的代码很好,只需要一些小的修复:

            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();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM