如何读取列表中每个“行”的每个字符(按顺序)C#

时间:2015-03-16 16:14:43

标签: c#

我目前正在处理一些代码,但我遇到了问题。我有一个包含名称的文本文件,每个名称都在一个新行上。我已将这些名称读入列表,但我希望能够按顺序读取每一行的每个字母(文本文件中的名称)。如果有人能帮助我,我会非常感激!

3 个答案:

答案 0 :(得分:5)

此代码将文件c:\ temp \ test-1.txt加载到StreamReader中,读取每一行直到它达到EOF,并将新行上的每个字符打印到控制台。根据需要进行修改。

请注意,如果您的文件存储在一个很长的行(并且是一个非常大的文件),那么您必须在此处进行一些额外的处理以避免内存不足。

string line;
using (StreamReader reader = new StreamReader("C:\\temp\\test-1.txt"))
{
    while (reader.Peek() > -1)
    {
        line = reader.ReadLine();
        foreach (char c in line)
        {
            Console.WriteLine(c);
        }
    }
}

答案 1 :(得分:2)

这是一个使用File.ReadLines读取文件的程序。

names.txt中:

Bob
Mary
Sue

代码:

var file = @"C:\temp\names.txt";

Console.WriteLine("Opening file {0}", file);
foreach(var name in File.ReadLines(file))
{
    Console.WriteLine("Printing letters in name: {0}", name);
    foreach(var letter in name)
    {
        Console.WriteLine(letter);
    }
}
Console.WriteLine("Done reading file");

输出:

Opening file C:\temp\names.txt
Printing letters in name: Bob
B
o
b
Printing letters in name: Mary
M
a
r
y
Printing letters in name: Sue
S
u
e
Done reading file

答案 2 :(得分:0)

这是你使用Linq从文件中获取所有字符的方法:

var allChars = File.ReadLines(filename).SelectMany(c => c);

然后你可以这样迭代:

foreach (char ch in allChars)
{
    Console.WriteLine(ch);
}