首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按子字符串排序列表

按子字符串排序列表
EN

Stack Overflow用户
提问于 2022-08-31 03:07:48
回答 2查看 65关注 0票数 -3

试图排序字符串的列表

代码语言:javascript
复制
    List<string> strings = new List<string>() { "N3 2021","N4 2021","N1 2022","N2 2022","N4 2022","N3 2022","N2 2023","N1 2023","N3 2023"};

    var orderedList = strings.OrderBy(x => x.Substring(2).Trim()).ToList();

    Console.WriteLine(String.Join(", ", orderedList));

当前产出:

N3 2021,N4 2021,N1 2022,N2 2022,N4 2022,N3 2022,N2 2023,N1 2023,N3 2023

期望产出:

N3 2021,N4 2021,N1 2022,N2 2022,N3 2022,N4 2022,N1 2023,N2 2023,N3 2023

任何帮助都将不胜感激。谢谢

更新:

解决办法是:

代码语言:javascript
复制
List<string> strings = new List<string>() { "N3 2021","N4 2021","N1 2022","N2 2022","N4 2022","N3 2022","N2 2023","N1 2023","N3 2023"};
    
var orderedList = strings.OrderBy(x => x.Substring(2).Trim()).ThenBy(y=>y).ToList();
    
Console.WriteLine(String.Join(", ",orderedList));
EN

回答 2

Stack Overflow用户

发布于 2022-08-31 03:28:45

在我看来,你是按年份排序,然后用某种前缀代码排序。由于年份更重要,您需要将其移动到代码的左边,以便进行排序。

代码语言:javascript
复制
static string RearrangeString(string input)
{
    var tokens = input.Split(' ');
    return string.Join(" ", tokens.Reverse() );
}

public static void Main()
{
    var strings = new List<string>() { "N3 2021","N4 2021","N1 2022","N2 2022","N4 2022","N3 2022","N2 2023","N1 2023","N3 2023"};
    var orderedList = strings.OrderBy(RearrangeString).ToList();

    Console.WriteLine(String.Join(", ", orderedList));
}

小提琴

票数 5
EN

Stack Overflow用户

发布于 2022-08-31 03:43:30

作者提供的实际解决方案,见问题编辑。

这是一个小提琴

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
                    
public class Program
{
    public static void Main()
    {
        List<string> strings = new List<string>() { "N3 2021","N4 2021","N1 2022","N2 2022","N4 2022","N3 2022","N2 2023","N1 2023","N3 2023"};
    
        var orderedList = strings.OrderBy(x => x.Substring(2).Trim()).ThenBy(y=>y.Substring(0)).ToList();
    
        Console.WriteLine(String.Join(", ",orderedList));
        Console.ReadLine();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73550478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档