이 메서드를 사용하여 일반 목록 <>을 정렬했습니다. 최근 T에서 T의 대상 속성이 nullable 유형 (십진수?) 인 경우 잘못된 결과가 나타났습니다. 어떤 아이디어를 수정하는 방법? 내 직원에 대한 예를 들어 http://www.codeproject.com/Articles/27851/Sorting-Generic-Lists-and-IEnumerables-by-Object-P일반 정렬 코드로 null 가능 유형 정렬
, 널 (NULL) 소수점 재산 시간와 개체를 "개체 속성 이름으로 일반 목록 및 IEnumerables 정렬"필 Hustead의 기사에서 코드 위
public void SortList<T>(List<T> dataSource, string fieldName, SortDirection sortDirection)
{
PropertyInfo propInfo = typeof(T).GetProperty(fieldName);
Comparison<T> compare = delegate(T a, T b)
{
bool asc = sortDirection == SortDirection.Ascending;
object valueA = asc ? propInfo.GetValue(a, null) : propInfo.GetValue(b, null);
object valueB = asc ? propInfo.GetValue(b, null) : propInfo.GetValue(a, null);
return valueA is IComparable ? ((IComparable)valueA).CompareTo(valueB) : 0;
};
dataSource.Sort(compare);
}
.
Null 허용 시간 107, NULL, 8, 152, 64, 8 , NULL, 64, NULL, 107 널 종류, 152.
nulls는 목록의 시작 부분이나 끝 부분을 정렬해야한다고 생각합니다.
실제 결과와 원하는 결과가 모두 문제가되는 샘플 입력을 제공하십시오. 그리고 왜 List을 처리 할 때 당신의 메소드를 사용하겠습니까? List의'Sort' 메소드를 사용하면 기본 비교기가이 트릭을 수행 할 것입니다. –