내가 일반적으로 ILookup<,>
를 사용하여 선호를 데이터의. 당신이처럼 구성 할 수 있습니다 :
list.ToLookup(e => e.Last, e => e.First);
를 기술적으로하지만 아닌 Dictionary<string,List<string>>
당신이 질문처럼, 그것은 여전히 당신은 아마하고 싶어했을 일의 대부분을 할 것입니다. 당신이 ILookup
개체를 변경할 수 없습니다
var firstNamesByLastName = list.ToLookup(e => e.Last, e => e.First);
foreach(var firstName in firstNamesByLastName["bourne"])
{
Console.WriteLine(firstName); // outputs "jason"
}
참고. 따라서 새 이름을 만든 후에는 추가 할 수 없습니다. 그러나 당신이 LINQ로 그것을 구성하려고한다는 사실은 당신이 거의 그것을 의도하지 않는다고 말해줍니다.
다른 주요 의미 차이
당신이 거기에 존재하지 않는 뭔가를 조회 할 경우
ILookup
빈 집합을 반환하는 것입니다. 다시 말하지만, 일반적으로 이와 같은 경우에 선호하는 행동입니다.
// if this used a dictionary, we'd get an exception.
foreach(var firstName in firstNamesByLastName["unborne"])
{
Console.WriteLine(firstName); // outputs "jason"
}
예제를 정렬하지 않았지만 원하는대로 정렬했습니다. 사전은 정렬되지 않은 모음입니다. –
은 잘 발견 - 나는 몰랐어 만 – g18c