LINQ에 대한 질문이 있습니다 (IEnumerable<>
및 List<>
). 나는 List<T>
을하고 필터링하거나 검색 할 때확장 메소드 ToList <T>()을 사용하면 자원이 낭비되지 않습니까?
, 나는 다음과 같은 LINQ를 사용하십시오에 의해 반환
var psec = from p in MyListOfSomeObjects
where ((p.Tipo == tipo) || (p.Tipo == null))
select p;
그러나이 특정한 경우에, 내가 대신 IEnumerable<T>
의, 실제 List<T>
필요 LINQ 쿼리.
내 List<T>
를 얻을 수 psec.ToList<T>()
를 사용할 수 있지만 내 질문은 :
가하는 방법 ToList<T>()
시간을 낭비 또는 컴퓨터 자원? 에 반복 또는 루프를 수행하여 List<T>
을 구축합니까?
단일 LINQ 문으로 사용하는 경우 ToList의 옵티 마이즈가 어느 정도인지 알 수 있습니까? – James
@James 아니요. 하나의 "선언문"에서 완료되었는지 여부는 중요하지 않습니다. 컴파일러는이를 동일한 방식으로 처리하고 메서드 호출 일뿐입니다. 'ToList()'는 단지''newList (sourceEnumerable)' –
@James를 반환합니다. 당신이 다음과 같이했을 때와 완전히 똑같습니다 :'List newList = new List (psec);' –