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

时间:2010-11-19 00:11:20

标签: c# file

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

我的代码中的错误显示在string[] lines = File.ReadLines("c:\\file.txt");,无法隐含转换....

有人可以告知代码以数组格式保存结果吗?我已经放置了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();
    }
}
}

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();
    }
}
}

3 个答案:

答案 0 :(得分:34)

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

如果你想使用一个字符串数组,你需要调用正确的函数。

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

这也有效:

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

您可以使用任何实现IEnumerable的通用集合。以IList为例。

答案 1 :(得分:18)

string[] lines = File.ReadLines("c:\\file.txt").ToArray();

虽然有人想知道为什么当ReadAllLines正常工作时你会想要这样做。

或许您只想枚举File.ReadLines的返回值:

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

答案 2 :(得分:1)

string[] lines = File.ReadLines("c:\\file.txt");更改为IEnumerable<string> lines = File.ReadLines("c:\\file.txt"); 其余的代码应该可以正常工作。