반응형
LINQ-값을 목록으로 사용하여 목록을 사전으로 변환
나는
List<MyObject>
데이터베이스에서 검색합니다. 그러나 그룹화 목적으로 MyObject의 속성으로 키를 지정하고 싶습니다. LINQ에서 내 목록을 다음으로 캐스팅하는 가장 좋은 방법은 무엇입니까?
Dictionary<long, List<MyObject>>
다음이 있습니다.
myObjectList.ToDictionary(x => x.KeyedProperty)
그러나 다음을 반환합니다.
Dictionary<long, MyObject>
당신이 그룹에 원하는 것 같은데 MyObject
하여 인스턴스 KeyedProperty
와로 그룹화 것을 넣어 Dictionary<long,List<MyObject>>
. 그렇다면 다음을 시도하십시오.
List<MyObject> list = ...;
var map = list
.GroupBy(x => x.KeyedProperty)
.ToDictionary(x => x.Key, x => x.ToList());
다음 과 같이 클래스 에서 ToLookup
확장 메서드 를 사용해야합니다 .Enumerable
List<MyObject> list = ...;
ILookup<long, MyObject> lookup = list.ToLookup(o => o.KeyedProperty);
사전에 배치하려면 다음 과 같이 ToDictionary
확장 메서드를 사용할 수 있습니다 .
IDictionary<long, IEnumerable<MyObject>> dictionary = lookup.ToDictionary(
l => l.Key);
참고 URL : https://stackoverflow.com/questions/3549103/linq-convert-list-to-dictionary-with-value-as-list
반응형
'IT story' 카테고리의 다른 글
C ++에서 조건부 typedef를 만드는 방법 (0) | 2020.09.11 |
---|---|
자바 스크립트에서 DOM 요소에 대한 HTML을 얻는 방법 (0) | 2020.09.11 |
긴 텍스트를 사용한 Rails 3 마이그레이션 (0) | 2020.09.11 |
vi에서 현재 위치에서 줄 끝으로 복사하는 방법 (0) | 2020.09.11 |
웹 서버가 응답하기를 기다리는 bash에서 루프를 만드는 방법은 무엇입니까? (0) | 2020.09.11 |