gpt4 book ai didi

c# - 如何在拆分字符串时对 List 进行排序?

转载 作者:行者123 更新时间:2023-12-02 17:45:43 29 4
gpt4 key购买 nike

我有一个 labelItem 列表,其中包含以下元素:CARD1、CARD2、CARD10、CARD11

我正在尝试对它们进行排序,因此我应用了如下排序

 List<LabelItem> sortedList = _labelItems.OrderBy(x => x.ViewLabel).ToList();
_labelItems = new BindingList<LabelItem>(sortedList);

但它不能完美地排序,因为字符串 CARD 的存在,所以它返回像 CARD 1 , CARD10 , CARD11, CAR19 , CARD2 ,CARD21 这样的列表

我知道有很多关于如何在使用自然排序算法时分割字符串的好工具,如本链接所示 http://www.interact-sw.co.uk/iangblog/2007/12/13/natural-sorting

我发现很难如何在此标签项上应用拆分(删除字符串卡)并对列表进行排序并使其返回 CARD1 、 CARD2 CARD3 、 CARD10 、CARD11、CARD20 而不是 CARD1 CARD10 CARD11 等... .

非常感谢您的帮助

最佳答案

您必须取出字符串并将其余部分转换为数字:

List<LabelItem> sortedList = _labelItems.OrderBy(x => Convert.ToInt32(x.ViewLabel.Replace("CARD", "")).ToList();
_labelItems = new BindingList<LabelItem>(sortedList);

注意:仅当您知道所有项目均以单词 CARD 开头时,此方法才有效。如果没有,您需要找到一种方法来获取这些数字

关于c# - 如何在拆分字符串时对 List<LabelItem> 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31149520/

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