C# 使用流编写器在文本文件中添加数字

C# 使用流编写器在文本文件中添加数字,c#,.net,C#,.net,我正在使用streamwriter类,并试图总结文本文件中的所有数字。 我的文本文件格式如下: name | number ------------- a 2 a 3 我想做的是打印出这些数字的总和,但我很难抓住这些数字。我正在考虑使用for循环来汇总数字,但不确定从何处开始只获取数字。您可以简单地执行以下操作: string[] lines = File.ReadAllLines("sample.txt"); int sum = 0; foreach (str

我正在使用streamwriter类,并试图总结文本文件中的所有数字。 我的文本文件格式如下:

name | number
-------------
  a       2
  a       3

我想做的是打印出这些数字的总和,但我很难抓住这些数字。我正在考虑使用for循环来汇总数字,但不确定从何处开始只获取数字。

您可以简单地执行以下操作:

string[] lines = File.ReadAllLines("sample.txt");
int sum = 0;
foreach (string line in lines.Skip(2))
{
    sum += Convert.ToInt32(line.Trim().Split(' ').Last());
}
  • 首先,我们创建一个类型为
    int
    的空
    sum
    变量(如果需要
    double
    ,当然可以在这里轻松交换)
  • 跳过(2)
    跳过前两行(标题和行分隔符)
  • Trim()
    从当前行中删除前导空格或尾随空格
  • Split(“”)
    将当前行拆分为一个空格字符,以将
    name
    列与
    number
    列分开(请注意,它实际上也会创建额外的空列,因为我们使用单个空格字符进行拆分)
  • Last()
  • Convert.ToInt32()
    将最后一列转换为
    int
    类型(如前所述,如果需要,可以改为
    double

看看这个答案:作为一个起点。也可能值得在每行的名称和编号之间添加管道分隔符。然后,当您在各行中循环时,将每行的内容拆分为一个管道分隔符,抓取行[1]项并使其跳闸,然后将其解析为int(如果它们都是int)。