我的人List<person>
如何排序字符串列表?
public class Person
{
public string Age { get; set; }
}
他們的年齡sorrily是string
但int
型INFACT,並具備"45", "70", "1" etc.
值的列表。我如何將列表從舊到舊排序?
致電people.Sort(x => x.Age);
沒有給出想要的結果。謝謝。
我的人List<person>
如何排序字符串列表?
public class Person
{
public string Age { get; set; }
}
他們的年齡sorrily是string
但int
型INFACT,並具備"45", "70", "1" etc.
值的列表。我如何將列表從舊到舊排序?
致電people.Sort(x => x.Age);
沒有給出想要的結果。謝謝。
您可以將每個字符串轉換爲int,然後命令他們,從最大到最小:
var oldestToYoungest = persons.OrderByDescending(x => Int32.Parse(x.Age));
這應該給你想要的結果(假設爲「7」,「22」的時代,而「105」 ):
105
22
7
如果將它們排序爲字符串,您將無法獲得所需的結果,因爲您發現了這些結果。您最終將列出按字母順序排列的列表,例如:
"7"
"22"
"105"
謝謝@GrantWinney – user3293835
這應該工作(假定people
是List<Person>
):
people = people.OrderByDescending(x => int.Parse(x.Age)).ToList();
如果你不希望創建一個新的List
,或者你可以實現IComparable<T>
爲你的類:
public class Person : IComparable<Person>
{
public string Age { get; set; }
public int CompareTo(Person other)
{
return int.Parse(other.Age).CompareTo(int.Parse(this.Age));
}
}
然後您只需要使用Sort
方法:
people.Sort();
* *期望的結果是什麼? –
正如我所說的從舊到新排序:) – user3293835