同じデータを返すメソッドが 3 つあります。データはのリストでMyObjectModel
あり、3 つのリストに同じデータが含まれていることを確認したいと考えています。json で 3 つのリストをそれぞれシリアル化し、文字列の長さがすべて同じかどうかを計算することを考えました。
より良いアプローチはありますか?
ありがとう。
同じデータを返すメソッドが 3 つあります。データはのリストでMyObjectModel
あり、3 つのリストに同じデータが含まれていることを確認したいと考えています。json で 3 つのリストをそれぞれシリアル化し、文字列の長さがすべて同じかどうかを計算することを考えました。
より良いアプローチはありますか?
ありがとう。
if(list1.SequenceEqual(list2) && list2.SequenceEqual(list3)) {
...
}
これを行うには、HashSet を使用することをお勧めします。
最初に、最初のリストのすべての項目を HashSet に追加します。
次に、2 番目のリストを繰り返し、HashSet に項目が含まれているかどうかを尋ねます。
すべてがそこに含まれている場合、それらには同じ要素が含まれています。
例
var list1 = new string[] { "A", "B", "C" };
var list2 = new string[] { "B", "A", "C" };
var list3 = new string[] { "C", "B", "A" };
var hs = new HashSet<string>(list1);
if (list2.All(x => hs.Contains(x)) && list3.All(x => hs.Contains(x)))
{
}
var isEqual=List<type>.Equals(List1,List2)
var allEqual= isEqual && List<type>.Equals(List1,List3)