, 나는 최근에 대비, 시작의 날짜 별 목록을 주문하려면이 스크립트를 사용하고있는 순간 타입 Date
Linq에서 날짜를 주문하는 방법? 나는 C# 및 LINQ를 사용하고
에 일부 날짜가 있습니다. 다음 코드와
는 내 이벤트가 정렬되지 않습니다 :
events.OrderBy(x => x.DateTimeStart).ToList();
return events.AsQueryable();
은 여기에서 잘못 될 수 있을까?
, 나는 최근에 대비, 시작의 날짜 별 목록을 주문하려면이 스크립트를 사용하고있는 순간 타입 Date
Linq에서 날짜를 주문하는 방법? 나는 C# 및 LINQ를 사용하고
에 일부 날짜가 있습니다. 다음 코드와
는 내 이벤트가 정렬되지 않습니다 :
events.OrderBy(x => x.DateTimeStart).ToList();
return events.AsQueryable();
은 여기에서 잘못 될 수 있을까?
events.OrderBy(x => x.DateTimeStart)
: 부동산 DateTimeStart하여 이벤트를 정렬하는 쿼리를 선언합니다. 쿼리가 아직 수행되지 않았습니다.
events.OrderBy(x => x.DateTimeStart).ToList();
: 이전 쿼리를 처리하십시오. 모든 이벤트를 반복하고 DateTimeStart을 확인하고 결과를 으로 정렬 한 다음 결과를 무시하십시오. 네가 안전하지 않았 으니까. 그런 식으로 비교 :
int a = 0;
a + 1;
b = a; // b is 0
return events.AsQueryable();
을 : 다음은 원래 이벤트 대신 정렬의 반환된다. 다음과 같이
당신은 당신의 코드를 작성해야합니다 버전은 정렬 된 이벤트의 정적 목록을 만들 것이다
return events.OrderBy(x => x.DateTimeStart).ToList().AsQueryable();
. 이제 이벤트 목록을 변경하면 결과에 변경 사항이 반영되지 않습니다.
두 번째 솔루션은 다음과 같습니다
return events.OrderBy(x => x.DateTimeStart).AsQueryable();
해당 버전이 더 일을하지 않습니다. 그냥 이벤트를으로 정렬하고 IQueryable으로 해당 방식을 반환합니다. 이후 코드에서 반환 값을 사용하면 사용하기 전에 새 값을 추가하더라도 정렬 된 모든 이벤트가 항상 포함됩니다.
events.OrderBy(x => x.DateTimeStart).ToList()
은 새 목록을 만들고 반환하지 않습니다.
당신은 아마 변수에 뭔가
return events.OrderBy(x => x.DateTimeStart).ToList();
답변 해 주셔서 감사합니다. – GibboK
가게처럼 orderedevents을 원하고) (이 변수 asQueryable를 반환;
var orderedEvents = events.OrderBy(x => x.DateTimeStart).ToList();
return orderedEvents.AsQueryable();
또는 변수가 필요하지 않은 경우 주문한 이벤트를 직접 반환하십시오.
return events.OrderBy(x => x.DateTimeStart).ToList().AsQueryable();
AsQueryable()과 ToList()는 기본 데이터 구조에 따라 크게 다른 것을 의미한다는 것을 기억하십시오. – flindeberg