나는 컬렉션이 있으며 그 중 모두는 int TypeId
속성을가집니다. 이 컬렉션의 항목을 재정렬해야합니다 (또는 새로 가져 오기). 항목의 순서는 TypeId = 3
이고 그 다음은 TypeId = 1
이고 그 다음은 TypeId = 2
입니다.
내 솔루션은 다음과 같습니다컬렉션 맞춤 재주문
var result = new List<A>();
result.AddRange(source.Where(i => i.TypeId == 3));
result.AddRange(source.Where(i => i.TypeId == 1));
result.AddRange(source.Where(i => i.TypeId == 2));
, 어떤은 source
콜렉션 여러 반복하는없이 다른 빠른 해결책 (일부 LINQ 트릭 일 수 있음)이있다?
귀하의 목록은 어떤 유형의 컬렉션입니까? 일부 콜렉션 클래스에는 내장형 정렬 함수가있어 매우 빠르다. 일반적으로 QuickSort가 선호되는 방법입니다 (Where 함수의 속도에 따라)이 메서드는 매우 효율적으로 보입니다. –
@Nick Udell : 자연의 질서를 정렬 할 때 사용하는 것과 같은 동일한 필드별로 정렬하는 트릭입니다. 그래서 이것은 표준 정렬 알고리즘 – sll