C#从文件读取到字符串数组

时间:2018-07-28 23:27:51

标签: c#

我希望能够从文本文件中读取数字并将其存储在字符串数组中,以将其显示在listBox中。

这是代码:

string[] filePath = @"C:Site\Project3\Sales.txt";

foreach (string val in filePath)
{
    listBoxValues.Items.Add(val.ToString());
}

2 个答案:

答案 0 :(得分:1)

更新

您本质上不需要parse,如果您只想从文件中读取列表框而不验证数字,则下面的方法应该起作用

listBoxValues.Items.AddRange(File.ReadAllLines("soemFile.txt"));

原始

就这么简单

listBoxValues.Items.AddRange(File.ReadAllLines("soemFile.txt")
                                 .Select(int.Parse)
                                 .ToList());

注意:这不会检查空行

File.ReadAllLines Method

  

打开一个文本文件,将文件的所有行读入字符串数组,   然后关闭文件。

Enumerable.Select Method (IEnumerable, Func)

  

将序列的每个元素投影为新形式。

Int32.Parse Method

  

将数字的字符串表示形式转换为其32位带符号   等价的整数。

答案 1 :(得分:0)

您可以这样做:

public List<string> ToList(string filePath)
{
    // Identifiers used are:
    var valueList = List<string>();
    var fileStream = new StreamReader(filePath);
    string line;

    // Read the file line by line
    while ((line = fileStream.readLine()) != null)
    {
       // Split the line by the deliminator (the line is a single value)
       valueList.Add(line);
    }
}

或者您也可以尝试这样的方法以更笼统:

public List<string> ToList(string filePath, char deliminator=',')
{
    // Identifiers used are:
    var valueList = List<string>();
    var fileStream = new StreamReader(filePath);
    string line;

    // Read the file line by line
    while ((line = fileStream.readLine()) != null)
    {
       // Split the line by the deliminator
       var splitLine = line.Split(deliminator);
       foreach (string value in splitLine) 
       {
          valueList.Add(value);
       }
    }
}

然后您可以使用它来填充列表框。这不是最有效的方法,但它应该适合您的情况,并且可以根据需要进行构建。