2009-05-05 7 views
21

여러 표현에 의해 정렬 LINQ를 유창하게 구사 구문과 유사한 F 번호에 어떤 기능이 있나요있는 OrderBy ThenBy F에 #

myList 
|> Seq.sort_by(fun x->x.Something) 
|> Seq.then_by(fun x->x.SomethingElse) 

들으

답변

40

키 귀하의 일종으로 튜플을 사용

myList |> Seq.sortBy (fun x -> x.Something, x.SomethingElse) 
+1

마우스 오른쪽 단추로, 사전 편찬 순서로 튜플 정렬, 그래서 그냥 어떤이 요구되는 않는 왼쪽에서 오른쪽으로 튜플의 순서로 여러 키를 넣어 . – Brian

+0

@ tim-robinson 키의 각 항목에 대해 alphanum/natural sort를 사용하여 이러한 유형의 정렬을 수행하는 방법을 알고 계십니까? – Erick

+0

@Erick 나는 손으로 IComparable을 구현하고 Seq.sortBy (사용자 지정 IComparable 구현에 정렬 키 래핑) 또는 System.Linq.Enumerable.OrderBy (매개 변수로 IComparable 전달)를 호출합니다. –

1

.NET 함수를 사용하는 것 외에도 정렬을 수행하기 위해 F #에서 대기하는 것을 모르기 때문에 일부 정렬 알고리즘을 유용하게 사용할 수 있습니다.

http://cs.hubfs.net/forums/thread/3876.aspx