에서 LINQ를 사용하여를 만들려고 Dictionary<string, List<CustomObject>>
합니다 List<CustomObject>
. "var"을 사용하여이 작업을 수행 할 수 있지만 익명 형식을 사용하고 싶지 않습니다. 여기 내가 가진 것입니다
var x = (from CustomObject o in ListOfCustomObjects
group o by o.PropertyName into t
select t.ToList());
또한 Cast<>()
일단 LINQ 라이브러리에서 사용하려고 시도했지만 x
유효하지 않은 캐스트의 결과로 컴파일 문제가 발생합니다.
var x = (ListOfCustomObjects 그룹 o의 CustomObject o에서 o.PropertyName으로 t를 선택하여 t를 선택)를 시도하면 어떻게됩니까? ToList ();
—
esastincy
이를 위해 설계된 ToLookup을 사용하는 대신이 작업을 수행해야하는 이유가 있습니까?
—
Jon Skeet 2016 년
Jon,이 상황에서 ToLookup의 작동 방식에 대한 예를 게시 해 주시겠습니까? 나는 그 LINQ 방법에 익숙하지 않다.
—
Atari2600
@JonSkeet 당신은 최고입니다! (모든 사람들은 이미 알고 있었지만 여전히 그렇습니다.) ToLookup 사용을 계획하지 않은 이유는 지금까지 들어 본 적이없는 원인이었습니다. 이제 알아요!
—
neminem
완전성을 위해
—
Michael Blackburn
var
사용하는 것은 "익명"유형을 사용하지 않고 "암시 적"유형을 사용합니다. 익명 형식은 생성자를 처리하기 위해 컴파일러에서 만든 새로운 클래스입니다 new { thing = "stuff" };
. 암시 적 유형은 기존 클래스이며 var
변수가 즉시 지정 될 때이를 참조하는 편리한 방법 일뿐입니다. 변수 유형은 지정된 오브젝트의 유형에서 유추 할 수 있습니다. 익명 형식을 참조하는 변수를 암시 적으로 입력 할 수도 있습니다.var a = new { thing = "stuff" };