Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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/0/windows/16.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#_.net_Winforms - Fatal编程技术网

C# 如何在文本文件中查找项的总和

C# 如何在文本文件中查找项的总和,c#,.net,winforms,C#,.net,Winforms,我正在构建一个比萨饼应用程序。用户可以选择标准的比萨饼,也可以定制比萨饼。每个比萨饼都有自己的价格,以双倍价格存储在列表中。这些价格也存储在文本文件中 我已经设法在下面的列表框代码中显示了比萨饼的价格,但我不知道如何找到它们的价格总和 价格总是有变化的,所以我需要将价格转换成变量并将它们相加,但我不确定如何做到这一点 foreach (var item in listPrice.Items) { File.AppendAllText("price.txt", item + Environ

我正在构建一个比萨饼应用程序。用户可以选择标准的比萨饼,也可以定制比萨饼。每个比萨饼都有自己的价格,以双倍价格存储在列表中。这些价格也存储在文本文件中

我已经设法在下面的列表框代码中显示了比萨饼的价格,但我不知道如何找到它们的价格总和

价格总是有变化的,所以我需要将价格转换成变量并将它们相加,但我不确定如何做到这一点

foreach (var item in listPrice.Items)
{
    File.AppendAllText("price.txt", item + Environment.NewLine);
}

using (StreamReader readFile = new StreamReader("price.txt"))
{
    string line;
    while ((line = readFile.ReadLine()) != null)
    {
        finalPrice.Items.Add(line);
    }
}

使用文本文件和字符串不是一个好方法,但下面是一个如何读取price.txt并求和值的示例

List<string> price = new List<string>();
using (StreamReader readFile = new StreamReader("price.txt"))
{
    string line;
    while ((line = readFile.ReadLine()) != null)
    {
        price.Add(line);
        finalPrice.Items.Add(line);
    }
}

//Convert string to double, then sum all lines
var sum = price.Select(s => Convert.ToDouble(s)).Sum();

特殊部分是最后一行,一旦所有价格都是标价,您可以使用将所有字符串转换为数字,然后调用Linq方法

建议:不要使用double作为货币值;使用十进制。我现在将更改它们,谢谢:dwy您为什么不将价格作为数值存储在列表框中?我有4个表单,下一个表单打开时每个表单都会关闭。如果我将创建一个列表,我认为其中的值将被删除,对吗?但我对此不确定。我会做更多的研究,然后再来back@BogdanDragos当前位置我知道你是新来的,但是这个问题和其他问题的质量都非常低。请尝试包含有关问题的更多信息,更好地格式化代码,花更多时间将问题文本格式化为逻辑部分。我已经编辑了你上面的问题,请检查它以确保我添加的内容是正确的,请在你的下一个问题上付出额外的努力,否则你将继续被否决。