2016-10-12 1 views
2

간단한 값 형식 목록의 요소를 투영하기 위해 매개 변수가 없거나 람다 연산자가 필요없는 메서드가 있는지 궁금합니다. 다음과 같은 경우에 예를 들어 작성자 : 좀 더 복잡한 개체를 것 같은 INT는에 의해 주문하는 모든 회원을 가지고 있지 않기 때문에간단한 값 형식 목록에서 OrderBy 쿼리의 중복을 피할 수 있습니까?

var unorderedList = new List<int>{ 3, 1, 2 }; 
var orderedList = unorderedList.OrderBy(x => x); 

x => x는 나에게 약간의 중복을 보인다. 그래서 거기에 여분의 매개 변수를 복용 whitout 순서 목록을 반환하는 다른 방법 (가급적이면 Linq)가 무엇입니까?

그냥 뭔가 : var orderedList = unorderedList.Order();

+0

직접 만들 수는 없지만 직접 만들 수 있습니다. –

+0

@IvanStoev 답장을 보내 주셔서 감사합니다. 내 자신을 만들 수 있음을 알고 있습니다. 기존 주문을 포장하여 매우 간단 할 수도 있습니다. – meJustAndrew

+1

"_since int에는 멤버가 없습니다. "글쎄, 여전히 x => Math.Sin (x)'또는 비슷하게 할 수 있습니다. – AlexD

답변

1

아마도 OrderBy를 확장 메소드로 소유하고 있을까요?

public static IEnumerable<T> OrderBy<T>(this IEnumerable<T> source) => source.OrderBy(x => x); 

C# 6.0 구문이 사용되었습니다.

6

당신이 List<int>을 가지고 있기 때문에, LINQ 세계의 스테핑 확인을 경우, 당신이 사용할 수있는 내장 Sort 방법 :

var unorderedList = new List<int> { 3, 1, 2 }; 
var orderedList = new List<int>(unorderedList); 
orderedList.Sort(); 
+1

그리고 방금 두 목록을 수정했습니다 :) – meJustAndrew

+5

@meJustAndrew Nope, 새로운 것. 첫 번째 값을 기준으로 두 번째 목록을 만들면 첫 번째 참조가 아닌 새 목록이 만들어집니다. –

+0

이제 생성자 호출을 보았습니다. 혼란스러워서 간단한 과제로 읽었습니다. – meJustAndrew

관련 문제