1

我想使用 c# 读取 csv 或文本文件并逐行计算该文件的字符数并在行尾显示哪个字符数小于 1500?我可以计算字符总数,但我不能逐行计算字符......这对 C# 专家来说可能是一个愚蠢的问题,但我刚开始用 C# 编码,我也很想知道什么是成为精通 c# 编码器的最佳方法???

4

3 回答 3

3

我会使用 LINQ:

var shortLines = File.ReadLines("file.csv")
                     .Where(line => line.Length < 1500);

foreach (var line in shortLines)
{
    // Do whatever you need to
}

请注意,这只会在您迭代时读取文件shortLines,并且会对其进行流式传输 - 但这确实意味着如果您迭代shortLines两次,它将读取两次。如果您需要多次迭代这些行,请调用ToListafter Where

于 2012-06-15T13:35:30.230 回答
0
string completeFile = File.ReadAllText("c:\temp\somefile.txt");

string[] arrayOfLines = completeFile.Split('\n');

foreach(string singleLine in arrayOfLines)
{
    //count
}
于 2012-06-15T13:29:26.690 回答
0

我把你的问题的意思是你想知道哪一行是文档的总字符数小于 1500:

        string[] lines = File.ReadAllLines("filename.txt");
        int count = 0;
        int line = 0;

        for (; line < lines.Length; line++)
        {
            count += lines[line].Length;
            if (count >= 1500)
            {
                // previous line is < 1500
                Console.WriteLine("Character count < 1500 on line {0}", line - 1);
                Console.WriteLine("Line {0}: {1}", line - 1, lines[line - 1]);
                break;
            }
        }
于 2012-06-15T13:53:26.827 回答