我的人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