找到该行中的特定文本,然后在C#中返回该行

时间:2014-09-22 23:44:52

标签: c# readline

我有一个大文件,为了简单起见,我只是展示了它的一小部分。数据如下所示:

NPSER   NASER   NQSER
10  5   3
TSSR    MPSER   JDNSR
15  10  6

我需要做的是找到例如NPSER和NASER,然后将值NPSER分配为10,将NASER分配为5,将NQSER分配为3.对于这个小数据集,我可以执行以下操作:

    TextReader infile = new StreamReader(fileName);
    string line;
    int NPSER, NASER, NQSER;
     line = infile.ReadLine();

    string[] words = line.Split('\t');

    NPSER = Convert.ToInt32(words[0]);
    NASER = Convert.ToInt32(words[1]);
    NQSER = Convert.ToInt32(words[2]);
    infile.Close();

我没有读取每一行并分配值,而是想写一个函数,当我在一行中搜索三个单词时,它会自动获取行,这对于更长的应用程序来说更容易和有效。

我也很欣赏其他方法。

1 个答案:

答案 0 :(得分:1)

如果你可以使用LINQ:

会更容易
var line = File.ReadLines("path")
     .SkipWhile(line => !line.Contains("NPSER")) // change this condition to suit your needs
     .Skip(1)
     .First();

var values = line.Split(new[] { ' '},StringSplitOptions.RemoveEmptyEntries)
             .Select(int.Parse) 
             .ToArray();

int NPSER = values[0];
int NASER = values[1];
int NQSER = values[2];