C# Linq - 使用条件值排序并返回分组结果

标签 c# linq sorting

我需要根据某些值中可能包含 . 的列从 EF 排序结果集。我希望结果按是否包含 . 进行分组,然后按名称排序。

给定列中的以下数据:

6010
6020
6.16.30
7030
6.16.40
7.15.20

.OrderBy(x => x.Column) 的结果返回以下内容:

6.16.30
6.16.40
6010
6020
7.15.20
7030

但是我想对包含的每个结果进行分组。单独排序,如下所示:

6.16.30
6.16.40
7.15.20
6010
6020
7030

如何使用 Linq 实现此目的?

最佳答案

这是一个possible solution :

using System;
using System.Collections.Generic;
using System.Linq;
                    
public class Program
{
    public static void Main()
    {
        var myList = new List<string>{"6010", "6020", "6.16.30", "7030", "6.16.40", "7.15.20"};
        var result = myList.Select(i => new { Item = i , Counter = i.Count(j => j == '.')}).OrderByDescending(i => i.Counter).ThenBy(i => i.Item).Select(i => i.Item).ToList();
        Console.WriteLine(string.Join('\n', result));
    }
}

关于C# Linq - 使用条件值排序并返回分组结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75801604/

相关文章:

c# - Sitecore Items - 以编程方式测试匿名用户是否具有权限

asp.net - 如何将 xml 文件添加到我的项目中?

javascript - 如何更改数组的索引顺序?

python - 在 Python 中使用多个条件过滤数据的最佳算法

c# - typeof(ICollection<>).GetTypeInfo().IsAssignableFrom(typeof(IList<>))

c# - 我的 Visual Studio 2010 突然无法调试我的应用程序

linq - Nhibernate 中的子查询

MYSQL 在一列上随机显示按 2 列排序的所有条目

c# - 半设计的数据库应该使用什么?模型优先还是数据库优先?

c# - 在导航属性 Entity Framework 上正确使用接口(interface)