如何在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
相关产品推荐
相关产品推荐

