什么是获取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()) - 它现在可以工作了。
虽然,这是一种解决方法......