gpt4 book ai didi

c# - 如何按字母顺序对字母数字列表进行排序

转载 作者:行者123 更新时间:2023-11-30 20:19:22 28 4
gpt4 key购买 nike

我正在尝试按国家/地区名称对字符串列表进行排序,其中每个字符串元素前面包含四位数字。但是,我实际上是按每个字符串前面的数字排序的,而不是按国家/地区名称排序的。任何人都可以帮助我如何在排序时忽略字符串中的数字。谢谢。

List<string> lst = new List<string>();
lst.Add("0003 India");
lst.Add("0005 America");
lst.Add("0004 Japan");
lst.Add("0001 Sweden");
lst.Add("0002 Germany");

lst.Sort();

lstSearchResult.DataSource = lst;
lstSearchResult.DataBind();

我得到的输出:

 0001 Sweden
0002 Germany
0003 India
0004 Japan
0005 America

我其实想要输出

 0005 America
0002 Germany
0003 India
0004 Japan
0001 Sweden

最佳答案

lst.Sort() 不起作用的原因是因为它使用默认的字符串比较 - 它使用整个字符串进行排序。您要做的是仅按空格后的字符串部分排序。为此:

您可以在字符串的拆分第二部分上使用 Linq 的 .OrderBy 方法:

List<string> lst = new List<string>();

lst.Add("0003 India");
lst.Add("0005 America");
lst.Add("0004 Japan");
lst.Add("0001 Sweden");
lst.Add("0002 Germany");

lst = lst.OrderBy(item => item.Split(' ').ElementAtOrDefault(1)).ToList();

// Or if always by the string from position 5 onward then:
lst = lst.OrderBy(p => p.Substring(5)).ToList();

lstSearchResult.DataSource = lst;
lstSearchResult.DataBind();

关于c# - 如何按字母顺序对字母数字列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38992789/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com