C#如何将File.ReadLines转换为字符串数组?

Jav*_*oob 22 c# file

我的问题是将读取行的过程从文本文件转换为数组而不是仅仅读取它.

我的代码中的错误出现在string[] lines = File.ReadLines("c:\\file.txt");with with implicity转换....

有人可以建议代码以数组格式保存结果吗?我已经放置了ReadAllLines代码,它能够将结果保存在数组中.谢谢!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;

namespace Testing
{
class Analysis
{
    static void Main()
    {
        string[] lines = File.ReadLines("c:\\file.txt");

        foreach (string r in lines)
        {
            Console.WriteLine("-- {0}", r);
        }

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}
}
Run Code Online (Sandbox Code Playgroud)

ReadAllLines代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;

namespace Testing
{
class ReadFromFile
{
    static void Main()
    {
        string[] lines = System.IO.File.ReadAllLines
        (@"C:\Users\Public\TestFolder\WriteLines2.txt");

        System.Console.WriteLine("Contents of writeLines2.txt =:");
        foreach (string line in lines)
        {
            Console.WriteLine("\t" + line);
        }

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}
}
Run Code Online (Sandbox Code Playgroud)

Ger*_*vis 41

File.ReadLines()返回一个类型的对象 System.Collections.Generic.IEnumerable<String>
File.ReadAllLines()返回一个字符串数组.

如果要使用字符串数组,则需要调用正确的函数.

您可以使用Jim解决方案,只需使用ReadAllLines()或者您可以更改返回类型.

这也有效:

System.Collections.Generic.IEnumerable<String> lines = File.ReadLines("c:\\file.txt");
Run Code Online (Sandbox Code Playgroud)

您可以使用任何实现IEnumerable的泛型集合.以IList为例.


Jim*_*hel 19

string[] lines = File.ReadLines("c:\\file.txt").ToArray();
Run Code Online (Sandbox Code Playgroud)

虽然有人想知道你为什么要在ReadAllLines工作得很好的时候这样做.

或者您可能只想枚举返回值File.ReadLines:

var lines = File.ReadAllLines("c:\\file.txt");
foreach (var line in lines)
{
    Console.WriteLine("\t" + line);
}
Run Code Online (Sandbox Code Playgroud)

  • 但是调用`ToArray`将否定调用`ReadLines`的任何好处.像我展示的那样使用枚举器. (4认同)
  • @Jim:我很确定`ReadLines`使用`StreamReader`或类似方法逐行读取文件.这就是重点. (4认同)