Office가 클래스 인 경우 이있는 국가를 국가별로 정렬해야합니다 (국가는 Office 클래스의 속성 임).특정 조건에 따라 목록 끝에있는 목록 항목을 효율적으로 이동하는 방법
일부 사무실에는 국가가 없으므로 목록 상단에 표시됩니다. 이 경우에는 "덜 관련성이있는"것으로 간주되어 이후에 목록의 맨 아래에 넣어야합니다.
switch (sortOptions.SortField)
...
case OfficeSortField.Country:
var noCountryList = officesList.Where(a => string.IsNullOrEmpty(a.CountryText)).ToList();
officesList.RemoveAll(a => string.IsNullOrEmpty(a.CountryText));
officesList= sortOptions.SortOrder == SortOrder.Ascending
? officesList.OrderBy(o => o.CountryText).ToList()
: officesList.OrderByDescending(o => o.CountryText).ToList();
officesList.AddRange(noCountryAssoList);
break;
퍼포먼스 관점에서 볼 때 더 나은 방법이 있습니까?
어떤 언어입니까? 대부분의 경우 사용자 정의 기준으로 정렬 할 수있는'sort' 함수가 있습니다. –
C#입니다. 태그로 추가했습니다. – Francesco
비슷하고 좋은 답변. 필자의 경우 목록 끝에있는 이동은 아주 특정한 경우에만 필요합니다 (이것은 Telerick Grid의 많은 종류 중 하나 일뿐입니다). 내가 제안한 코드만큼 성능이 좋고 우아하지는 않지만 완벽을 기하기 위해 코드를 게시합니다. – Francesco