如何将外部文本数据加载到C#中?

时间:2014-04-10 01:31:08

标签: c#

我有一个名为my_date.txt的文本文件,其中包含以下数据:

1 Adam
2 Steve
3 Lisa
4 Josh
..... 

文本文件可能很长。我试图将此文本文件中包含的数据加载到C#中的数组中,以便我可以执行操作。在sas我只是使用输入。在VBA我只是引用单元格,假设我在excel中创建它。但是在这里使用C#,我根本不知道。

2 个答案:

答案 0 :(得分:3)

C#中,您可以使用File.ReadLines方法和LINQ执行此操作:

var values = File
            .ReadLines("filePath") // 1
            .Select(x => x.Split())  // 2
            .Select(x => new { Id = x[0], Name = string.Join(" ", x.Skip(1) }) // 3
            .ToArray(); // 4
  1. 阅读文件中的所有行
  2. Split每行由空格
  3. 为包含两个属性Id(数字)和Name的每一行创建一个匿名对象,我使用string.Join,因为您的名字可能包含 white-spaces < /em>。您可以使用自定义类而不是更合适的匿名类型。
  4. 将结果转换为数组。

答案 1 :(得分:3)

#1简单

您可以使用File.ReadAllLines将文本文件的行放入字符串数组中。

string[] names = File.ReadAllLines("C:\\my_date.txt");

然后解析数据以删除名称

之前的1, 2, 3, etc
for (int i = 0; i < names.Length; i++)
{
    names[i] = names[i].Split()[1];    
}

#2 LINQ

使用简单的for循环可以正常工作,但也可以使用LINQ

string[] names = File.ReadAllLines("C:\\my_date.txt")
    .Select(str => str.Split()).Select(name => name[1]).ToArray();

如果您不需要数字前缀,则可以使用ReadAllLines方法而不使用Split()