Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#(流读取器)中添加外部文件中的数据量_C#_Variables_Loops_While Loop_Streamreader - Fatal编程技术网

如何在C#(流读取器)中添加外部文件中的数据量

如何在C#(流读取器)中添加外部文件中的数据量,c#,variables,loops,while-loop,streamreader,C#,Variables,Loops,While Loop,Streamreader,我是这个网站的新手,对编程也很陌生,目前我正试图在我的捐赠名单上显示用户名的计数金额,然后我还想得到一个总数来计算捐赠名单中包含的总金额,如果有人能帮助我在捐款.txt文件中创建一种方法来增加捐款人的数量,这将是非常有帮助的,我不知道从哪里开始,但到目前为止,这是我的代码: string sName; double dAmount; string sTotalNames; double dAmountTotal; d

我是这个网站的新手,对编程也很陌生,目前我正试图在我的捐赠名单上显示用户名的计数金额,然后我还想得到一个总数来计算捐赠名单中包含的总金额,如果有人能帮助我在捐款.txt文件中创建一种方法来增加捐款人的数量,这将是非常有帮助的,我不知道从哪里开始,但到目前为止,这是我的代码:

        string sName;
        double dAmount;
        string sTotalNames;
        double dAmountTotal;
        double dAmountAverage;

    using (StreamReader sr = new StreamReader("Donations.txt"))
    {
        while (sr.Peek() != -1)
        {
            sName = sr.ReadLine();
            Console.WriteLine(sName);

            dAmount = Convert.ToDouble(sr.ReadLine());
            Console.WriteLine(dAmount);
        }

        Console.WriteLine("Press any key to close");
        Console.ReadKey();
    }
List-dAmountList=新列表();
使用(StreamReader sr=newstreamreader(“advancements.txt”))
{
while(sr.Peek()!=-1)
{
sName=sr.ReadLine();
控制台写入线(sName);
dAmount=Convert.ToDouble(sr.ReadLine());
控制台写入线(dAmount);
dAmount列表。添加(dAmount);
}
double sum=dAmountList.sum();//这是您的总和
int dAmountOfDonators=dAmountList.Count();//这是您的捐赠者总数
Console.WriteLine(“按任意键关闭”);
Console.ReadKey();
}

假设您所有的其他功能都正常工作,那么创建一个总和将非常容易

string sName;
double dAmount;
int sTotalNames = 0;
double dAmountTotal = 0;
double dAmountAverage;

using (StreamReader sr = new StreamReader("Donations.txt"))
{
    while (sr.Peek() != -1)
    {
        sName = sr.ReadLine();
        Console.WriteLine(sName);

        dAmount = Convert.ToDouble(sr.ReadLine());
        Console.WriteLine(dAmount);
        dAmountTotal += dAmount;
        sTotalNames++;
    }
    dAmountAverage = dAmountTotal / sTotalNames;
    Console.WriteLine("Sum = {0}", dAmountTotal );
    Console.WriteLine("Total Names = {0}", sTotalNames);
    Console.WriteLine("Average Amount = {0}", dAmountAverage);
    Console.WriteLine("Press any key to close");
    Console.ReadKey();
}

快速紧凑的实现:

var lines = File.ReadAllLines("Donations.txt");

// Convert odd rows to Double
var amounts = lines.Where((x,i) => i % 2 == 1)
                   .Select(Convert.ToDouble)
                   .ToArray();

var sum = amounts.Sum();
var count = amounts.Count();

请提供该示例的
investments.txt
格式和预期结果。其中只写有字符串名称和我使用流编写器获得的双精度字符串,下面的信息是:Alex 50 Bob 45 Sam 90 Sarah 33 Harry 60I基本上只想在外部文件中添加字符串,并在我的reader程序中显示总数,捐赠的金额也是如此听起来应该是xml 50。非常感谢,这解决了我的总数问题,你知道我将如何计算捐款人的数量吗?非常感谢kevin,你的回答对我帮助很大,即使在平均代码中为我添加了,我也会接受你的答案作为解决方案,当它允许我的时候,再次非常感谢,真的感谢你的帮助。是的,没问题,我想你也需要它,因为你为它声明了一个变量。是的,我想这就是你为什么为我这么做的原因:)谢谢
var lines = File.ReadAllLines("Donations.txt");

// Convert odd rows to Double
var amounts = lines.Where((x,i) => i % 2 == 1)
                   .Select(Convert.ToDouble)
                   .ToArray();

var sum = amounts.Sum();
var count = amounts.Count();