[linq] Lambda 식에서 내림차순으로?

나는 정상적인 Linq 문법에서 orderby xxx descending매우 쉽다는 것을 알고 있지만 Lambda 표현에서 어떻게해야합니까?



답변

브래넌은 말했다, 그것은이다 OrderByDescendingThenByDescending:

var query = from person in people
            orderby person.Name descending, person.Age descending
            select person.Name;

다음과 같습니다.

var query = people.OrderByDescending(person => person.Name)
                  .ThenByDescending(person => person.Age)
                  .Select(person => person.Name);


답변

사용 System.Linq.Enumerable.OrderByDescending()?

예를 들면 다음과 같습니다.

var items = someEnumerable.OrderByDescending();


답변

이 시도:

List<int> list = new List<int>();
list.Add(1);
list.Add(5);
list.Add(4);
list.Add(3);
list.Add(2);

foreach (var item in list.OrderByDescending(x => x))
{
    Console.WriteLine(item);
}


답변

다른 방법으로 시도하십시오.

var qry = Employees
          .OrderByDescending (s => s.EmpFName)
          .ThenBy (s => s.Address)
          .Select (s => s.EmpCode);

쿼리 가능.


답변

이것은 숫자 필드가있는 상황에서만 작동하지만 필드 이름 앞에 빼기 기호를 넣을 수 있습니다.

reportingNameGroups = reportingNameGroups.OrderBy(x=> - x.GroupNodeId);

그러나이보다 조금 다른 작품 OrderByDescending당신이 그것을 실행 한 경우 int?double?또는 decimal?필드.

OrderByDescending널 에서 발생하는 일은 끝에서,이 방법과 함께 널에서 시작하는 것입니다. 데이터를 조각으로 나누고 나중에 접합하지 않고 null을 섞고 싶을 때 유용합니다.


답변

LastOrDefault()일반적으로 작동하지 않지만 Tolist()작동합니다. 사용할 필요가 없습니다 OrderByDescending사용 Tolist()과 같습니다.

GroupBy(p => p.Nws_ID).ToList().LastOrDefault();


답변