`parts[1]` 或 `parts[3]` 越界,因某些行分割後列數不足 (空行、分隔符缺失、格式錯誤)。
var parts = line.Split('\t');
if (parts.Length < 4) continue; // 或記錄錯誤日志
if (parts.Length < 4) {
Console.WriteLine($"Bad line: {line}");
continue;
}
var query = File.ReadAllLines(file, Encoding.GetEncoding("GB2312")) // 指定編碼
.Skip(2)
.Select(l => l.Split('\t'))
.Where(p => p.Length >= 4)
.GroupBy(p => p[1])
.Select((g,i) => $"{i+1}\t{g.Key}\t{g.Sum(x => int.Parse(x[3]))}");