.NET List<T> Concat 및 AddRange
-
01-07-2019 - |
해결책
그것들은 완전히 다른 의미를 가지고 있습니다.
AddRange는 다른 항목을 추가하여 목록을 수정합니다.
Concat은 목록을 수정하지 않고 목록과 기타 항목을 포함하는 새 시퀀스를 반환합니다.
원하는 의미가 있는 것을 선택하세요.
다른 팁
가장 큰 차이점은 AddRange가 호출되는 목록을 변경하는 반면 Concat은 새 목록을 생성한다는 것입니다.따라서 용도가 다릅니다.
또한 Concat은 모든 IEnumerable에 적용되고 IEnumerable을 반환하는 확장 메서드입니다. 새 목록을 생성하려면 .ToList()가 필요합니다.
기존 목록의 내용을 확장하려면 AddRange를 사용하세요.
두 개의 IEnumerable 소스에서 새 목록을 만드는 경우 .ToList와 함께 Concat을 사용하세요.이는 소스 중 하나를 변경하지 않는 품질을 갖습니다.
두 목록(또는 다른 IEnumerable)의 내용만 열거해야 하는 경우 매번 Concat을 사용하면 통합 목록을 보관하기 위해 실제로 새 메모리를 할당하지 않는다는 이점이 있습니다.
나는 이 두 구조의 차이점과 성능 비교에 대해 설명하는 흥미로운 기사를 발견했습니다.
주요 아이디어는 AddRange가 크기가 큰 컬렉션일 때 훨씬 더 빠르다는 것입니다.
여기는 링크
도움이 되었기를 바랍니다,
제휴하지 않습니다 StackOverflow