我有用戶列表。按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)'過載。看看文檔和/或示例[這裏](https://msdn.microsoft.com/en-us/library/9s9ak971(v = vs.110).aspx) – Nino
我得到一個預感,你可能正在搜索對於像list.OrderBy(x => x.Field1).ThenBy(x => x.Field2)?附:此 –
需要System.Linq輸入字符串的格式不正確是非常自我描述的,並且是轉換失敗的結果。如果您在調試器中看到這個問題,請查看導致問題的字符串的值。 –