c# - 使用 LINQ 在 C# 中对列表进行排序

标签 c# linq

我想用 C# 对列表进行排序。

就像结构属性 AVC 变为真然后首先显示它们然后 AVC 变为假。有什么方法可以在 C# LINQ 中执行此操作?

最佳答案

嗯,使用 LINQ 的最简单方法是这样的:

list = list.OrderBy(x => x.AVC ? 0 : 1)
           .ToList();

list = list.OrderByDescending(x => x.AVC)
           .ToList();

相信 bool 的自然排序值为 false < true , 但第一种形式使 IMO 更清晰,因为每个人都知道 0 < 1 .

请注意,这不会对原始列表本身进行排序 - 它会创建一个新列表,并将引用分配回 list多变的。如果你想就地排序,你应该使用 List<T>.Sort 方法。

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

相关文章:

c# - 如何(有效地)将 SqlDataReader 字段转换(强制转换?)为其相应的 c# 类型?

c# - 如何在 linq 中排序项目类别

c# - 使用异步 linq 过滤 Puppeter Sharp 的 ElementHandle[]

c# - 使用 LINQ select 过滤 Dictionary<string, string>

c# - "value cannot be null parameter name: key"

c# - 如何在参数类型为 List<BaseClass> 时传递 List<DerivedClass>?

c# - 简单的嵌套 TreeView Xaml 结构?

c# - 将多个XML转换为JSON列表

c# - IQueryable 和计数

LINQ 分组/子查询来填充层次结构数据结构