c# - 使用 OrderBy 对列表进行排序

标签 c# linq

我有以下模型

public class UserViewModel
    {
        public String CVR_Nummer { get; set; }
        public DateTime LastActivityDate { get; set; }
        public DateTime CreationDate { get; set; }
        public String FirmaNavn { get; set; }
        public int ProcentAnswered { get; set; }
    }

我创建了一个 List<UserViewModel>并尝试对其进行排序:

userviewmodel.OrderBy(x => x.ProcentAnswered);

它可以编译,但列表没有排序。怎么来的?

最佳答案

LINQ 在设计上是无副作用的,因此它不会更改输入。它还使用惰性执行,在您尝试访问数据之前它不会做任何事情。将输出重新分配给列表,它应该可以工作。请注意,我在这里使用 ToList() 方法,因为 OrderBy() 返回 IEnumerable<UserViewModel>在我们尝试将项目放入其中之前,它不会被评估。我们使用 ToList() 方法从此序列创建一个新列表并强制执行查询。

userviewmodel = userviewmodel.OrderBy(x => x.ProcentAnswered).ToList();

关于c# - 使用 OrderBy 对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9160127/

相关文章:

c# - ASP.NET Core 2.1 中的 Scaffold Identity UI 并添加全局过滤器

c# - 将字符串从 C 函数传递给 C#

c# - 如何选择父级和筛选的子级列表(如果存在)(外连接)

c# - linq min 问题/bug

c# - .net linq 查询连接

c# - 如何将空组添加到 Linq 查询结果集中?

c# - 如何训练从右到左语言的tesseract

c# - 在 SQL Server CLR 程序集中使用 Microsoft Solver Foundation

c# - 带有动态下拉菜单的 MVC 3 编辑器模板

c# - LINQ:显示空列表的结果