我有一份人员名单 List<person>
public class Person
{
public string Age { get; set; }
}
抱歉,他们的年龄在string
但实际上是 int
类型并具有类似 "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"
关于c# - 如何对字符串列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22109261/