请帮我以下... 我有两个列表对象如下:
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
所以基本上是column1,然后是list1的第2列,然后是list 2的第3列.Tolumn1很常见。 请注意,行数可能并不总是相同..在这种情况下,它将为null。
我真的非常需要Linq中的这个解决方案。感谢。
答案 0 :(得分:2)
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] };
答案 1 :(得分:0)
我真的不明白为什么很难弄明白这个问题,他只想把两个数组合在一起(我仍然不知道为什么在网络上你只能找到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()) });