This question already has answers here:
How to merge 2 List<T> and removing duplicate values from it in C#
(5 个回答)
3年前关闭。
获取 List2 并将其添加到 List1 的末尾的简单有效方法是什么 - 但在某种程度上,只有在串联之前 List1 中已经存在 而非 的项目才会被添加到其中?
编辑:
我一直在尝试此处的答案中建议的方法,但我仍然将欺骗添加到 List1!
这是一个代码示例:
调试时 - 在第二次迭代之后 - globalList 包含 TheObject 的完全相同对象的两个副本。当我尝试实现 Edward Brey 的解决方案时,也会发生同样的事情......
EDIT2:
我修改了返回新 tempList 的代码,以检查返回的项目是否已经在 globalList 中(通过执行 !globalList.contains()) - 现在可以使用了。
虽然,这是一个解决方法......
(5 个回答)
3年前关闭。
获取 List2 并将其添加到 List1 的末尾的简单有效方法是什么 - 但在某种程度上,只有在串联之前 List1 中已经存在 而非 的项目才会被添加到其中?
编辑:
我一直在尝试此处的答案中建议的方法,但我仍然将欺骗添加到 List1!
这是一个代码示例:
// Assume the existence of a class definition for 'TheObject' which contains some
// strings and some numbers.
string[] keywords = {"another", "another", "another"};
List<TheObject> tempList = new List<TheObject>();
List<TheObject> globalList = new List<TheObject>();
foreach (string keyword in keywords)
{
tempList = // code that returns a list of relevant TheObject(s) according to
// this iteration's keyword.
globalList = globalList.Union<TheObject>(tempList).ToList();
}
调试时 - 在第二次迭代之后 - globalList 包含 TheObject 的完全相同对象的两个副本。当我尝试实现 Edward Brey 的解决方案时,也会发生同样的事情......
EDIT2:
我修改了返回新 tempList 的代码,以检查返回的项目是否已经在 globalList 中(通过执行 !globalList.contains()) - 现在可以使用了。
虽然,这是一个解决方法......
最佳答案
List1.Union(list2)。更多例子转到http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
关于C#:加入两个列表,排除重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10168671/
10-12 23:19