사용자 목록이 있습니다.C의 매개 변수로 개체 목록 정렬 #
몇 가지 매개 변수로 목록을 정렬하고 싶습니다.
case 0:
//Date (work) int for example: 0
Osu_ve.UserList.Sort((e1, e2) => e1.Index.CompareTo(e2.Index));
break;
case 1:
//Name (work) string for example: vectis
Osu_ve.UserList.Sort((e1, e2) => e1.UData.username.CompareTo(e2.UData.username));
break;
case 2:
//PP (doesn't work) string for example: 14688.76
Osu_ve.UserList.Sort((e1, e2) => Convert.ToDouble(e2.UData.pp_raw).CompareTo(Convert.ToDouble(e1.UData.pp_raw)));
break;
case 3:
// Best PP (doesn't work) string for example: 820.545
Osu_ve.UserList.Sort((e1, e2) => Convert.ToDouble(e2.UBestScore[0].pp).CompareTo(Convert.ToDouble(e1.UBestScore[0].pp)));
break;
case 4:
//Rank (work) string for example: 48484
Osu_ve.UserList.Sort((e1, e2) => Convert.ToDouble(e1.UData.pp_rank).CompareTo(Convert.ToDouble(e2.UData.pp_rank)));
break;
case 5:
//Country Rank (work) string for example: 54
Osu_ve.UserList.Sort((e1, e2) => Convert.ToDouble(e1.UData.pp_country_rank).CompareTo(Convert.ToDouble(e2.UData.pp_country_rank)));
break;
case 6:
//Acc (doesn't work) string for example: 98.5678623
Osu_ve.UserList.Sort((e1, e2) => Convert.ToDouble(e1.UData.accuracy.Remove(5)).CompareTo(Convert.ToDouble(e2.UData.accuracy.Remove(5))));
break;
는이 오류 메시지가 : 입력 문자열이 올바른 형식이 아닙니다.
일부는 작동합니다. 어디에 문제가 있습니까?
'Convert.ToDouble (string, IFormatProvider)'오버로드를 사용하십시오. 설명서 및/또는 예제 [here] (https://msdn.microsoft.com/en-us/library/9s9ak971(v=vs.110).aspx) – Nino
을 살펴 보겠습니다. 아마도 검색 중일 수 있습니다. 오더 바이 (x => x.Field1) .ThenBy (x => x.Field2)? 추신. –
에 대해 System.Linq가 필요합니다. 올바른 형식이 아닌 입력 문자열은 자기 설명력이 있으며 변환에 실패한 결과입니다. 디버거에서 이것을 보면 문제를 일으킨 문자열의 값을보십시오. –