2017-09-20 14 views
-2

私はC#でオブジェクトの2つのリストを持っています。一つは大きなもの、もう一つは小さなもの。説明の便宜上のは、彼らがこのようにちょっと見てみましょうと言うために...あるリストから別のリストの値を削除しますが、重複は保持していますか?

List A    List B 

Cat     Mouse 
Dog     Cat 
Mouse     Dog 
Cow 
Dog 
Cat 
Dog 

は、私は一度だけ出現するたびに、リストAからリストBの値を削除します。

「猫」と「犬」はリストに複数回あるので、だから、除去した後に、まだ「猫」とまだリストAの「犬」の2つのエントリ

に1つのエントリが存在することになります

それは意味がありますか?これを達成する簡単な方法はありますか?

+0

文字列、動物は何ですか?クラス? – Equalsk

+0

'foreach(リストBのvar elem)listA.Remove(elem);'?あなたのリストにあるものは 'IEquatable 'などのものを実装していますか? –

+0

彼らはリストですが、リストは常にintでいっぱいになるでしょう。リストでなければならない理由がありますが、リストではありません。 – AzzyDude

答えて

1
foreach(var listBItem in listB) 
{ 
    var index = listA.IndexOf(listBItem); 
    if (index > -1) listA.RemoveAt(index); 
} 

または短い

listB.ForEach(i => listA.Remove(i)); 
+0

ええ、私は馬鹿だ。どうして私は、そのシンプルで明白な何かを考えなかったのか分かりません。 – AzzyDude

1
foreach(var item in ListB) 
{ 
    ListA.Remove(item); 
} 
関連する問題