如何使用LINQ将列表中的所有元素选择到另一个列表

问题描述:

如何使用LINQ从列表1中选择所有元素到列表2中?如何使用LINQ将列表<Int32>中的所有元素选择到另一个列表<Int32>?

List<Int32> list1 = GetList(); 
List<Int32> list2 = from e in list2 select ????? 

如下:

List<Int32> list1 = GetList(); 
List<Int32> list2 = (from e in list2 select e).ToList(); 

list1 = GetList(); 
    List<Int32> list2 = new List<Int32>(list1); 
+0

我试着铸造,而不是工作。谢谢!我会尽快接受你的回答。 – pencilCake 2012-03-14 09:40:30

+0

@pencilCake - 好的感谢您的评论,它适合你...... – 2012-03-14 09:46:14

+0

但请注意,'list1 = list2 = GetList();'在语义上不同于其他所有解决方案。它不创建新的列表,它只是复制参考。 – Henrik 2012-03-14 10:20:49

无需就撞了上去LINQ只是所有元素从一个列表复制:

List<Int32> list1 = GetList(); 
List<Int32> list2 = new List<Int32>(list1); 
+0

这很酷!我不知道 – pencilCake 2012-03-14 09:42:02

我不是当然,如果这是你想要的。但这样的事情:

List<Int32> list2 = (from e in list2 select e).ToList(); 

List<Int32> list2 =list1.Select (l =>l).ToList(); 

使用LINQ:

List<int> list1 = GetList(); 
List<int> list2 = list1.Select(x => x).ToList(); 

较容易的方法是

List<int> list2 = new List<int>(list1); 

为什么没有人提出这样的解决方案:

List<int> list1 = GetTheList(); 
List<int> list2 = list1.ToList(); 

,为什么你不觉得奇怪:

.Select(x => x) 

这种表达什么都不做。