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();
}
デバッグ時 (2 回目の繰り返しの後)、globalList には、TheObject のまったく同じオブジェクトの 2 つのコピーが含まれます。Edward Breyのソリューションを実装しようとすると、同じことが起こります...
EDIT2:
新しい tempList を返すコードを修正し、返された項目が既に globalList にあるかどうかを確認するようにしました (!globalList.contains() を実行して) - 現在は動作しています。
ただし、これは回避策です...