如何从特定行的文本文件中读取数字?

时间:2015-10-13 19:35:57

标签: c#

这是我的文本文件:

Earnings: 17 

EarningsM: 2

Level: 6

如何为整数设置此数字?

我试过

foreach (string line in File.ReadLines(@"C:\Program Files (x86)\makeeuro\work.txt"))
    if (line.Contains("Earnings"))
        button1.Text = line;

但我只需要数字,所以它现在正常工作。这是我的整数:

int xp;
int lvlg;
int lvl;

我需要投入"收入" xp的值," EarningsM"对于lvlg和" Level"对于lvl。

1 个答案:

答案 0 :(得分:1)

试试这个:

IEnumerable<string> lines = File.ReadLines(@"C:\Program Files (x86)\makeeuro\work.txt");
Dictionary<string, int> values = lines
    .Where(l => !string.IsNullOrEmpty(l))
    .Select(s => s.Split(':'))
    .ToDictionary(split => split[0], split => int.Parse(split[1]));

然后您将能够按名称访问您的整数值,如下所示:

int xp = values["Earnings"];

等等。

当然这非常粗糙,没有错误检查,我会留给你作为练习; - )

关于Linq运营商的一些解释:

Where运算符摆脱了空行。

Select运算符在:处拆分每一行,并将其投影到包含两个字符串,键和值的数组中。

ToDictionary运算符通过选择拆分的第一项作为键,第二项作为值来创建字典。

干杯