0

同じデータを返すメソッドが 3 つあります。データはのリストでMyObjectModelあり、3 つのリストに同じデータが含まれていることを確認したいと考えています。json で 3 つのリストをそれぞれシリアル化し、文字列の長さがすべて同じかどうかを計算することを考えました。

より良いアプローチはありますか?

ありがとう。

4

3 に答える 3

6

使用Enumerable.SequenceEqual:

if(list1.SequenceEqual(list2) && list2.SequenceEqual(list3)) {
    ...
}
于 2012-10-23T03:47:00.200 に答える
0

これを行うには、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)))
{

}
于 2012-10-23T03:47:57.313 に答える
0
var isEqual=List<type>.Equals(List1,List2)
var allEqual= isEqual && List<type>.Equals(List1,List3)
于 2012-10-23T04:00:01.403 に答える