文字列のリストが2つあります。それらの間の個別の値のリストを取得したり、最初のリストから2番目のリスト要素を削除したりするにはどうすればよいですか?
List<string> list1 = { "see","you","live"}
List<string> list2 = { "see"}
結果は{"you","live"}
。
必要なように見えます Enumerable.Except()
:
var differences = list1.Except(list2);
そして、違いをループすることができます:
foreach(var difference in differences)
{
// work with each individual string here.
}
2番目のリストのアイテムを除いて、最初のリストからアイテムを取得する場合は、
list1.Except(list2)
最初のリストまたは2番目のリストにあるが、両方ではないアイテムを取得する場合は、次を使用できます。
list1.Except(list2).Concat(list2.Except(list1))
これは私がユニークだと思う良い方法です。
2つのリストからユニーク
var A = new List<int>() { 1,2,3,4 };
var B = new List<int>() { 1, 5, 6, 7 };
var a= A.Except(B).ToList();
// outputs List<int>(2) { 2,3,4 }
var b= B.Except(A).ToList();
// outputs List<int>(2) { 5,6,7 }
var abint= B.Intersect(A).ToList();
// outputs List<int>(2) { 1 }