C#使用streamreader

时间:2017-12-09 21:34:36

标签: c# streamreader

我对c#比较新,我正在尝试编写一个程序,使用Streamreader查找文件中每个xth值的平均值。 (例如,如果我想找到该文件中每五个值的平均值)

我编写了一些代码来读取文件并将其拆分为每个逗号的新行,当我尝试读取每个特定值时,这样可以正常工作。

然而,我努力想办法找到每一个特定的值,比如每4个,然后找到它们的平均值并将它输出到同一个程序中。

    static void Main(string[] args)
    {
        using (var reader = new StreamReader(@"file"))
        {
            List<string> list = new List<string>();
            while (!reader.EndOfStream)
            {
                var line = reader.ReadLine();
                var values = line.Split(',');
                list.Add(values[0]);
            }
        }
    }

任何建议或帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

试试这个;

    static void Main()
    {
        using (var reader = new StreamReader(@"file"))
        {
            int lineNumber = 4;
            bool streamEnded = false;
            List<string> list = new List<string>();
            while (!streamEnded)
            {
                var line = ReadSpecificLine(reader, lineNumber,out streamEnded);
                if (string.IsNullOrEmpty(line))
                {
                    continue;
                }
                var values = line.Split(',');
                list.Add(values[0]);
            }
        }
    }
    public static string ReadSpecificLine(StreamReader sr, int lineNumber,out bool streamEnded)
    {
        streamEnded = false;
        for (int i = 1; i < lineNumber; i++)
        {
            if (sr.EndOfStream)
            {
                streamEnded = true;
                return "";
            }
            sr.ReadLine();
        }
        if (sr.EndOfStream)
        {
            streamEnded = true;
            return "";
        }
        return sr.ReadLine();
    }