c# - 如何对字符串列表进行排序?

标签 c# linq sorting

我有一份人员名单 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/

相关文章:

c# - 存储这些值的最轻集合是什么?

c# - 任务列表中出现奇怪的空条目

c# - 如何在包含 n 个字符的子字符串上对字符串进行切片 c#?

c# - 无法将类型 X 转换为类型 Y。LINQ to Entities 仅支持转换 EDM 基本类型或枚举类型

arrays - 在 Swift 中对 UIImage 类型数组进行排序

c++ - 使用迭代器对 std::list 进行排序

arrays - 如何对依赖项数组进行排序?

c# - 拒绝访问此目录

c# - 在 C# 中,我可以创建一个变量,根据构成它的变量的变化来更新它的值吗?

c# - 如何正确使用 Task.ContinueWith?