Linq 如何合并两个列表的列



请在以下方面帮助我…我有如下两个列表对象:

list1:
ID  col1
--------
1   A
1   B
1   C
list2:
ID  col2
--------
1   D
1   E 
1   F
Now I want:
ID  col1  col2
---------------
1    A     D
1    B     E
1    C     F

基本上是列1,然后是列2,然后是列3。第1列是常见的。请注意,行数可能并不总是相同的。在这种情况下,它将为空。

我真的真的需要Linq中的这个解决方案。谢谢。

List<Class> list1 = new List<Class>();
List<Class> list2 = new List<Class>();
// Add classes to lists...
list1.AddRange(list2);
// Order merged list...
list1.OrderByDescending(o => o.col1).ThenBy(o => o.col2);

试着去理解…

Dictionary<Int32, Class[]> dictionary = new Dictionary<Int32, Class[]>();
list2.Reverse();
for (Int32 i = 0; i < list1.Count; ++i)
    dictionary[i] = new Class[2] { list1[i], list2[i] };

我真的不明白为什么很难弄清楚这个问题,他只想把两个数组组合在一起(我仍然不知道为什么在网络的答案中你只找到Concat,AddRange或Union。错误答案:

我用Zip解决它:

       var result = list1.Zip(list2,(first,second)=>new  {entrada=first,salida=second});

现在你可以这样做:

       var union=result.Select(x=> new {x.entrada, x.salida, horas = int.Parse((DateTime.Parse(x.salida).Subtract(DateTime.Parse(x.entrada))).Hours.ToString()) });

相关内容

  • 没有找到相关文章

最新更新