如何总结使用 c# 和 Newtonsoft JSON 的值?
How to sum up values working with c# and Newtonsoft JSON?
我正在制作购物车。将餐点添加到购物车已完成,我还可以在购物车中显示带有价格的产品。我唯一没能做的就是将所有价格相加并写下该值。购物车可以有随机数量的产品。
这是我用于购物车的代码:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
namespace menu
{
public class Program
{
public static void Main(string[] args)
{
var myJsonString = new JsonShop("ShoppingCart.json");
var myJsonObject = myJsonString.Load22();
Console.Clear();
Console.WriteLine("========================");
Console.WriteLine(" Shopping cart");
Console.WriteLine("========================\n");
foreach (Shopping shop in myJsonObject.shoppinglist)
{
Console.WriteLine($"Meal: {shop.meal} Price: {shop.price}");
}
Console.WriteLine($"Total cost = ");
}
public class Shopping
{
public string meal;
public double price;
public Shopping(string Meal, double Price)
{
this.meal = Meal;
this.price = Price;
}
}
public class Shoppinglist
{
public List<Shopping> shoppinglist = new List<Shopping>();
}
}
public class JsonShop
{
public string Location;
public JsonShop(string location)
{
this.Location = location;
}
public void Save22(Program.Shoppinglist ShoppingData)
{
string file = Newtonsoft.Json.JsonConvert.SerializeObject(ShoppingData, Newtonsoft.Json.Formatting.Indented);
File.WriteAllText(Location, file);
}
public Program.Shoppinglist Load22()
{
Program.Shoppinglist ShoppingData = Newtonsoft.Json.JsonConvert.DeserializeObject<Program.Shoppinglist>(File.ReadAllText(Location));
return ShoppingData;
}
}
}
这是我使用的 JSON 代码:
{
"shoppinglist": [
{
"meal": "Tiramisu",
"price": 6.5
},
{
"meal": "Pasta carbonara",
"price": 12.99
}]
}
有人可以帮我把所有价格加起来吗?我认为下一步是使用 for 循环?
您可以通过两种方式在您的代码中执行此操作:
你可以像这样在当前循环中求和:
public static void Main(string[] args)
{
var myJsonString = new JsonShop("ShoppingCart.json");
var myJsonObject = myJsonString.Load22();
Console.Clear();
Console.WriteLine("========================");
Console.WriteLine(" Shopping cart");
Console.WriteLine("========================\n");
double totalCost = 0;
foreach (Shopping shop in myJsonObject.shoppinglist)
{
Console.WriteLine($"Meal: {shop.meal} Price: {shop.price}");
totalCost += shop.price;
}
Console.WriteLine($"Total cost = ");
}
2.you 可以用 linq 求和:
public static void Main(string[] args)
{
var myJsonString = new JsonShop("ShoppingCart.json");
var myJsonObject = myJsonString.Load22();
Console.Clear();
Console.WriteLine("========================");
Console.WriteLine(" Shopping cart");
Console.WriteLine("========================\n");
foreach (Shopping shop in myJsonObject.shoppinglist)
{
Console.WriteLine($"Meal: {shop.meal} Price: {shop.price}");
}
Console.WriteLine($"Total cost = {myJsonObject.shoppinglist.Sum(x => x.price)}");
}
我正在制作购物车。将餐点添加到购物车已完成,我还可以在购物车中显示带有价格的产品。我唯一没能做的就是将所有价格相加并写下该值。购物车可以有随机数量的产品。
这是我用于购物车的代码:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
namespace menu
{
public class Program
{
public static void Main(string[] args)
{
var myJsonString = new JsonShop("ShoppingCart.json");
var myJsonObject = myJsonString.Load22();
Console.Clear();
Console.WriteLine("========================");
Console.WriteLine(" Shopping cart");
Console.WriteLine("========================\n");
foreach (Shopping shop in myJsonObject.shoppinglist)
{
Console.WriteLine($"Meal: {shop.meal} Price: {shop.price}");
}
Console.WriteLine($"Total cost = ");
}
public class Shopping
{
public string meal;
public double price;
public Shopping(string Meal, double Price)
{
this.meal = Meal;
this.price = Price;
}
}
public class Shoppinglist
{
public List<Shopping> shoppinglist = new List<Shopping>();
}
}
public class JsonShop
{
public string Location;
public JsonShop(string location)
{
this.Location = location;
}
public void Save22(Program.Shoppinglist ShoppingData)
{
string file = Newtonsoft.Json.JsonConvert.SerializeObject(ShoppingData, Newtonsoft.Json.Formatting.Indented);
File.WriteAllText(Location, file);
}
public Program.Shoppinglist Load22()
{
Program.Shoppinglist ShoppingData = Newtonsoft.Json.JsonConvert.DeserializeObject<Program.Shoppinglist>(File.ReadAllText(Location));
return ShoppingData;
}
}
}
这是我使用的 JSON 代码:
{
"shoppinglist": [
{
"meal": "Tiramisu",
"price": 6.5
},
{
"meal": "Pasta carbonara",
"price": 12.99
}]
}
有人可以帮我把所有价格加起来吗?我认为下一步是使用 for 循环?
您可以通过两种方式在您的代码中执行此操作:
你可以像这样在当前循环中求和:
public static void Main(string[] args) { var myJsonString = new JsonShop("ShoppingCart.json"); var myJsonObject = myJsonString.Load22(); Console.Clear(); Console.WriteLine("========================"); Console.WriteLine(" Shopping cart"); Console.WriteLine("========================\n"); double totalCost = 0; foreach (Shopping shop in myJsonObject.shoppinglist) { Console.WriteLine($"Meal: {shop.meal} Price: {shop.price}"); totalCost += shop.price; } Console.WriteLine($"Total cost = "); }
2.you 可以用 linq 求和:
public static void Main(string[] args)
{
var myJsonString = new JsonShop("ShoppingCart.json");
var myJsonObject = myJsonString.Load22();
Console.Clear();
Console.WriteLine("========================");
Console.WriteLine(" Shopping cart");
Console.WriteLine("========================\n");
foreach (Shopping shop in myJsonObject.shoppinglist)
{
Console.WriteLine($"Meal: {shop.meal} Price: {shop.price}");
}
Console.WriteLine($"Total cost = {myJsonObject.shoppinglist.Sum(x => x.price)}");
}