3
첫 번째로 사과드립니다. 결과가 나올 수있는 모든 구문을 검색했지만 답을 찾거나 내 검색 용어를 일관되게 구성하는 데 어려움을 겪었습니다.일치하는 ID가 일치하는 객체에만 적용
// Collection 1
[0] = 1st, TypeA, 3
[1] = 2nd, TypeA, 3
[2] = 1st, TypeB, 57
[3] = 2nd, TypeB, 57
// Collection 2
[0] = 3rd, TypeB, 57
[1] = 4th, TypeB, 58
:
나는 컬렉션 1 개체 A의 컬렉션 (2)가 수집 한 2 종류와 컬렉션 2 두번째로 날짜 1 일을 포함
// Object A Structure
Date
Type
Value
1 개 유형 4에 3 날짜를 다루고있다
원래 두 가지 컬렉션을 결합해야했습니다. 아니 문제 : 나는있을거야
// Result Collection
[0] = 1st, TypeB, 57
[1] = 2nd, TypeB, 57
[2] = 3rd, TypeB, 57
[3] = 4th, TypeB, 58
그러나
var result = collection1.Union(collection2);
, 지금은 유형이 컬렉션이 존재하지 않는 두 컬렉션 그러나 컬렉션 1에서 제외 개체를 결합하고 싶습니다 간단한 (잘하면 linq) 한 줄 솔루션을하지만 난 그냥 내 머리가 기어 무엇인지 알아낼 수 없습니다.
// Get distinct Types from Collection 2
var typesToInclude = collection2.GroupBy(c => c.Type).Select(group => group.First().Type);
var result = collection2.Union(collection1.Where(c => typesToInclude.Contains(c.Type)));
하지만 정말 투박하고 기본적으로 다음과 같은
var result = collection1
.Where(x => collection2.Any(c => c.Type == x.Type))
.Union(collection2);
을 시도 :(최적의
Ahhhhhhhh Any! 그것은 나에게 새로운 것조차 아니다, 나무를위한 나무를 볼 수 없었다 :) 많은 감사 Jared, 나는 또한 순서를 선호한다, 조합 내의 곳에 embedding보다는 더 좋게 본다. – thudbutt