2014-12-17 3 views
1

오브젝트를 비교하여 오브젝트가 동일한 지 또는 차이점이 있는지 비교합니다.리스트에 2 개의 오브젝트 추가하기

다른 경우 어떻게 든 함께 저장하고 싶지만 어떻게할지는 모르겠다. 추가 할 동일한 유형의 오브젝트가 여러 개 있습니다.

List<T,T> 수 :

뭔가처럼 있습니까?

그래서 객체 B와 객체 A를 비교하고, 이들 유형이 동일하지 않으면, 내가 호출 할 수

List.Add(A,B). 

그래서 나는 각 요소에서 각 개체가 관련되었다는 것을 알아?

희망적이라고 생각하세요!

+3

두 개의 속성으로 클래스를 만들거나'List >'또는'List >'을 사용하십시오. –

+1

@Tim - 당신에게 큰 존경심을 갖지만, 질문에 대답 할 수 있다면 코멘트보다는 대답 할 수 있습니까? 그렇지 않으면 시간을내어 그렇게하는 사람들은 [코멘트를 복사합니다] (http : //stackoverflow.com/questions/27527639/adding-2-objects-to-a-list/27527696?noredirect=1#comment43483949_27527696). 감사. – Jamiec

답변

4

당신은 두 가지 속성을 가진 클래스를 만들 수 있습니다 또는 후자는 다음이를 초기화하기 위해

list.Add(Tuple.Create(A,B)); 

과 같을 것이다 전자는

list.Add(new MyObject(A,B)) 

과 같을 것이다 Tuple<T1,T2>

사용 목록 하나는 AB 유형을 알아야하지만 A은 유형이 012라고 가정합니다. 목록이

var list = new List<Tuple<Foo,Bar>>() 
+0

Empty Tuple을 생성하는 방법의 예입니다. 이것은 모든 객체를 반복 할 때 확장 목록이 될 것이기 때문입니다. 서로 다르면 계속 추가하겠습니다. – user3437721

+0

@BhargavModi - 아니요. 약 15 년 동안의 .NET 코드 작성 후 복사됩니다. \ * rolleyes \ * – Jamiec

+0

튜플을 사용하여 후자의 예제에서 목록을 어떻게 구성합니까?var list = new List user3437721

0

당신은 다른 유형의 객체를 저장하는 튜플을 사용할 수 있습니다로 초기화 될 것이다 Bar 3,451,및 B 유형이다

Tuple<type1,type2> 
1

동일한 유형의 여러 객체가 될 수있을 것입니다 덧붙였다.

그러면 List<List<T>> (기본적으로 톱니 모양의 배열)이 필요합니다. '동등한'개체 그룹을 식별하는 데 사용할 수있는 '키'값 (예 : 비교중인 속성)이 있으면 Dictionary<TKey,List<TValue>>은 성능이 약간 향상 될 수 있습니다.

이미 컬렉션이있는 경우 GroupBy Linq 방법을 사용하여 '균등'개체를 그룹화 할 수 있습니다.

관련 문제