我的问题是将读取行的过程从文本文件转换为数组,而不仅仅是阅读它。
我的代码中的错误显示在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();
}
}
}
答案 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");
其余的代码应该可以正常工作。