문제

차이점은 무엇 입니까? 범위 추가 그리고 연결 일반 목록의 함수?하나가 다른 것보다 권장됩니까?

도움이 되었습니까?

해결책

그것들은 완전히 다른 의미를 가지고 있습니다.

AddRange는 다른 항목을 추가하여 목록을 수정합니다.

Concat은 목록을 수정하지 않고 목록과 기타 항목을 포함하는 새 시퀀스를 반환합니다.

원하는 의미가 있는 것을 선택하세요.

다른 팁

가장 큰 차이점은 AddRange가 호출되는 목록을 변경하는 반면 Concat은 새 목록을 생성한다는 것입니다.따라서 용도가 다릅니다.

또한 Concat은 모든 IEnumerable에 적용되고 IEnumerable을 반환하는 확장 메서드입니다. 새 목록을 생성하려면 .ToList()가 필요합니다.

기존 목록의 내용을 확장하려면 AddRange를 사용하세요.

두 개의 IEnumerable 소스에서 새 목록을 만드는 경우 .ToList와 함께 Concat을 사용하세요.이는 소스 중 하나를 변경하지 않는 품질을 갖습니다.

두 목록(또는 다른 IEnumerable)의 내용만 열거해야 하는 경우 매번 Concat을 사용하면 통합 목록을 보관하기 위해 실제로 새 메모리를 할당하지 않는다는 이점이 있습니다.

나는 이 두 구조의 차이점과 성능 비교에 대해 설명하는 흥미로운 기사를 발견했습니다.

주요 아이디어는 AddRange가 크기가 큰 컬렉션일 때 훨씬 더 빠르다는 것입니다.

여기는 링크

도움이 되었기를 바랍니다,

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top