동일한 데이터를 반환해야하는 3 가지 메소드가 있습니다. 데이터는 MyObjectModel
의 목록이며 세 개의 목록에 동일한 데이터가 포함되어 있는지 확인하고 싶습니다. 나는 json에서 3 개의리스트를 직렬화하고 문자열의 길이가 모두 같은지 계산했다.은 객체 목록을 비교합니다.
더 좋은 방법이 있습니까?
감사합니다.
동일한 데이터를 반환해야하는 3 가지 메소드가 있습니다. 데이터는 MyObjectModel
의 목록이며 세 개의 목록에 동일한 데이터가 포함되어 있는지 확인하고 싶습니다. 나는 json에서 3 개의리스트를 직렬화하고 문자열의 길이가 모두 같은지 계산했다.은 객체 목록을 비교합니다.
더 좋은 방법이 있습니까?
감사합니다.
사용 Enumerable.SequenceEqual
는 :
if(list1.SequenceEqual(list2) && list2.SequenceEqual(list3)) {
...
}
이 작업을 수행하기 위해 HashSet의를 사용할 수 있습니다.
먼저 첫 번째 목록의 모든 항목을 HashSet에 추가합니다.
그런 다음 두 번째 목록을 반복하여 항목이 포함되어 있는지 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)
첫째, 당신은 두 객체가 동일하게하는 것이 무엇을 의미하는지 결정해야합니다. 모든 필드는 동일하고 동일한 ID 등입니다. 그런 다음 http://msdn.microsoft.com/en-us/library/4d7sx9hd.aspx 또는 http://msdn.microsoft.com/en-us/을 구현할 수 있습니다. library/ms131187.aspx –