목록을 정렬하는 방법 > 목록에 따르면 [0] number asc/desc의 c#?
문제
이것을 ASC 순서로 어떻게 정렬해야합니까?
나는 얻었다 List<List<UInt32>>
기록으로 가득합니다 List<UInt32>
각 레코드의 첫 번째 열에 따라 해당 레코드를 정렬하기를 원합니다. 열은 UINT32 번호입니다.
그래서:
목록이 있습니다.
new List<UInt32>: 32,1,1,1,1,1
new List<UInt32>: 22,2,2,2,2,2
new List<UInt32>: 32,1,1,1,1,1
new List<UInt32>: 1,1,1,1,1
정렬해야합니다.
List<UInt32>: 1,1,1,1,1
List<UInt32>: 22,2,2,2,2,2
new List<UInt32>: 32,1,1,1,1,1
new List<UInt32>: 32,1,1,1,1,1
-> 첫 번째 숫자 만 중요합니다! 다른 사람들은 정렬에 중요하지 않습니다. 나는 ASC를 찾고 있지만 둘 다 환상적 일 것이므로 알고리즘이 변경되어야한다고 생각하면 찾아 볼게요 :)
도움을 주셔서 감사합니다!
@Samuel, 감사합니다. 유형을 변경하려고 할 때 구현하려고 노력할 것입니다. :)
해결책
거의 복제 :
목록을 정렬하는 방법 u003CListu003Cstring> > 목록에 따르면u003Cstring> 필드 수?
같은 것 :
var sorted = parent.OrderBy( l => l[0] );
또는:
parent.Sort( (a,b) => a[0].CompareTo( b[0] ) )
다른 팁
John의 답변이 작동하는 동안 사용하는 것이 좋습니다. First()
목록에서 0 요소에 액세스하는 대신 이런 식으로 그것은 어떤 경우에도 효과가 있습니다 IEnumerable<T>
뿐만 아니라 IList<T>
.
var sorted = list.OrderBy(subList => subList.First());
제휴하지 않습니다 StackOverflow