我需要根据某些值中可能包含 .
的列从 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/