답변
당신은 컴파일 전에 프롭퍼티 알고있는 경우 : (A의 예를 들어, 동적 정렬을
myList = myList.OrderBy(a=>a.propertyName).ToList();
또는
myList = (from m in myList order by m.propertyName).ToList();
당신이 컴파일시에 재산이없는 경우를 그리드 또는 무언가); 다음과 같은 확장 방법을 시도 : 이것은`경우 법적 할당되지
List<T> list = new List<T>();
//fill list here
list.OrderBy(item => item.DoubleTypeProperty).ToList();
HTH
static class OrderByExtender
{
public static IOrderedEnumerable<T> OrderBy<T>(this IEnumerable<T> collection, string key, string direction)
{
LambdaExpression sortLambda = BuildLambda<T>(key);
if(direction.ToUpper() == "ASC")
return collection.OrderBy((Func<T, object>)sortLambda.Compile());
else
return collection.OrderByDescending((Func<T, object>)sortLambda.Compile());
}
public static IOrderedEnumerable<T> ThenBy<T>(this IOrderedEnumerable<T> collection, string key, string direction)
{
LambdaExpression sortLambda = BuildLambda<T>(key);
if (direction.ToUpper() == "ASC")
return collection.ThenBy((Func<T, object>)sortLambda.Compile());
else
return collection.ThenByDescending((Func<T, object>)sortLambda.Compile());
}
private static LambdaExpression BuildLambda<T>(string key)
{
ParameterExpression TParameterExpression = Expression.Parameter(typeof(T), "p");
LambdaExpression sortLambda = Expression.Lambda(Expression.Convert(Expression.Property(TParameterExpression, key), typeof(object)), TParameterExpression);
return sortLambda;
}
}
그런 다음 주문 list`는`List
ToList()를 잊어 버렸습니다. –
이것은 목록을 정렬하지 않습니다. 그것은리스트의 정렬 된 버전을 얻기 위해 열거 될 수있는'IEnumerable
@Jan - 결과에 따라 원하는 결과에 따라 달라집니다. –
- 1. double *을 배열로 변환하는 방법 <double> (6)
- 2. C++ 벡터 <vector <double>> double **
- 3. Objective-C에서 Double 값을 Date 값으로 변환하는 방법
- 4. 이미지를 세로로 정렬하는 방법 <td>
- 5. PHP의 4 수준 값으로 다차원 배열을 정렬하는 방법
- 6. NSArray를 날짜 시간 값으로 정렬하는 방법은 무엇입니까?
- 7. WCF를 통해 <Interface>리스트를 전달하려면 어떻게해야합니까?
- 8. python.select,리스트를 인자로 보내기
- 9. 리스트를 구현하는 직렬화 클래스
- 10. 리스트를 eval()에 건네겠습니다
- 11. Java 인덱스가 ArrayList에 없습니다. <Double>
- 12. 리스트를 반환하는 Linq-to-Entities <CustomObject>
- 13. VB.Net Double double to
- 14. doubleValue는 개체를 항상 double 값으로 올바르게 변환하지 않습니다.
- 15. Objective-C에서 double 값을 다음 정수 값으로 반올림하는 방법은 무엇입니까?
- 16. 변환 목록 <double[]>이
- 17. '속성을 없애는 방법은 double 값으로 설정할 수 없습니다.이 속성을 decimal 유형의 null이 아닌 값으로 설정해야합니다.'
- 18. << 연산자 int 및 double 값을 계산하도록 다시 쓰기
- 19. 테이블 셀의 텍스트를 오른쪽으로 정렬하는 방법 <col/>
- 20. java.util.ArrayList를 정렬하는 방법 <ParentType> ChildType을 기반으로 하시겠습니까?
- 21. ArrayList를 정렬하는 방법 특정 인덱스 범위를 기반으로 <String>
- 22. 열을 다시 정렬하는 방법
- 23. xsl에서 속성을 정렬하는 방법
- 24. MergeCursor를 정렬하는 방법?
- 25. 뷰를 중앙 정렬하는 방법?
- 26. 컬렉션을 바인딩하고 정렬하는 방법
- 27. 목록 목록을 정렬하는 방법?
- 28. 루비 파일을 정렬하는 방법
- 29. 자바를 사용하여 정렬하는 방법
- 30. android에서 텍스트를 정렬하는 방법
나는 속성 이름을 알고있다. 그리고 나는 즉시 내 마음 속에 있었지만, OrderBy 함수가 없다는 문제가있다! –
클래스의 맨 위에'using System.Linq' 문이 있다면,이게 작동합니다. –
그래, 그 참조를 놓친 것 같습니다. 감사. –