You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中按商品编号升序显示文本文件中的数据

修改C#代码实现商品按编号升序显示的方案

核心思路

  • 拆分文件中的商品条目,去除多余空白
  • 解析每个条目的商品编号,按编号整数升序排序
  • 按照指定格式拼接排序后的条目,最后一个条目前添加lastly,

修改后的DisplayItemList方法代码

public void DisplayItemList()
{
    // 读取items.txt文件内容
    string fileContent = File.ReadAllText("items.txt");
    
    // 拆分商品条目,过滤空内容并去除前后空白
    var itemEntries = fileContent.Split('|')
                                 .Select(entry => entry.Trim())
                                 .Where(entry => !string.IsNullOrWhiteSpace(entry))
                                 .ToList();
    
    // 按商品编号升序排序:解析条目中的编号并转换为整数
    var sortedEntries = itemEntries.OrderBy(entry => 
    {
        // 拆分出编号部分(假设格式为"编号 - 名称")
        string numberSegment = entry.Split('-')[0].Trim();
        return int.Parse(numberSegment);
    }).ToList();
    
    // 按期望格式拼接输出字符串
    string displayText;
    switch (sortedEntries.Count)
    {
        case 0:
            displayText = "暂无商品数据";
            break;
        case 1:
            displayText = sortedEntries[0];
            break;
        default:
            // 拼接前n-1个条目,最后一个条目添加"lastly, "前缀
            string prefixPart = string.Join(", ", sortedEntries.Take(sortedEntries.Count - 1));
            displayText = $"{prefixPart}, lastly, {sortedEntries.Last()}";
            break;
    }
    
    // 输出结果
    Console.WriteLine(displayText);
}

额外优化建议

  • 异常处理:如果存在编号无法转换为整数的条目,添加try-catch块避免崩溃,比如将解析失败的条目放到末尾或单独处理
  • 格式兼容:如果商品条目的格式(如分隔符)有变动,需同步调整Split的参数和解析逻辑
  • 性能优化:如果文件内容极大,建议使用File.ReadLines逐行读取处理,避免一次性加载全部内容到内存

内容的提问来源于stack exchange,提问作者tin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:56:08