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

C#读取文件行并将指定行转为以行号为键的Dictionary

问题解决与实现方案

你的代码错误原因

  1. Select(x => x.StartsWith("A"))将原行序列转换为了bool类型的序列,后续操作的x是布尔值而非原行内容,完全偏离需求。
  2. x.GetHashCode缺少调用括号,正确写法是x.GetHashCode(),但即便修正,用布尔值的哈希值作为键既无意义也极易重复。

正确实现代码(流式处理+行号作为键)

Dictionary<int, string> lines = File
    .ReadLines(inputFilePath)
    .Select((line, lineIndex) => new { Content = line, LineNumber = lineIndex + 1 }) // 行号从1开始,若需从0起始则移除+1
    .Where(item => item.Content.StartsWith("A"))
    .ToDictionary(item => item.LineNumber, item => item.Content);

关键说明

  • 流式处理适配大文件:File.ReadLines采用延迟加载机制,仅在迭代时逐行读取文件,不会将整个大文件加载至内存,完美契合大文件场景的性能需求。
  • 行号作为天然唯一键:行号本身具备唯一性(只要文件行顺序固定),相比哈希值更可靠,无需额外去重操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:50:54