【问题标题】:get value in ObserableColection<> and process it?在 ObservableCollection<> 中获取值并处理它?
【发布时间】:2021-11-16 07:17:35
【问题描述】:

我是 c# 中的新 Linq。我有一个问题需要解决。我将值添加到 ObserableColection。哪里有计数和价格,我想取这两个值并将其添加并写入函数中。谁能帮帮我。

我的代码:

public CookViewModel()
{
    cookviewmodel = new ObservableCollection<CookModel>();
    cookviewmodel.Add(new CookModel { Menu = "Bắp bò ngâm mắm nhĩ", PriceMenu = Utils.ConvertMoney("1000000"), Count = 2, DoStatus = "Hoàn tất", SumMoney = Sum() });
    cookviewmodel.Add(new CookModel { Menu = "Bắp bò ngâm mắm nhĩ", PriceMenu = Utils.ConvertMoney("1000000"), Count = 1, DoStatus = "Hoàn tất" });
    cookviewmodel.Add(new CookModel { Menu = "Bắp bò ngâm mắm nhĩ", PriceMenu = Utils.ConvertMoney("1000000"), Count = 1, DoStatus = "Hoàn tất" });
}

public double Sum()
{
    var count  = from f in cookviewmodel
                        select f.Count;
    var price = from p in cookviewmodel
                       select p.PriceMenu;
    
    return Convert.ToInt32(count) * Convert.ToDouble(count); 
}

我需要获取 Count 和 PriceMenu 的值并将它们相加

类实用程序:

class Utils
{
     public static string ConvertMoney(string value)
     {
         CultureInfo cul = CultureInfo.GetCultureInfo("vi-VN");
         return double.Parse(value).ToString("#,###", cul.NumberFormat); 
     }
}

【问题讨论】:

  • 有什么问题?还是疑问?
  • 它的问题。我需要改变 func Sum 。
  • 你想得到每一行的总和还是所有的总和?您尝试得到 sum SumMoney = Sum() 一次,但尚未添加 CookModel 的其余行。 from f in cookviewmodel select f.Count 将返回 IEnumerable (许多值,所有值都来自 cookviewmodel)但不是一个数字

标签: c# linq


【解决方案1】:

我愿意这样做

internal class CookModel
{
    public string Menu { get; set; }
    public double PriceMenu { get; set; }
    public double  Count { get; set; }
    public double SumMoney => Count * PriceMenu;
}

【讨论】:

    【解决方案2】:

    首先,将您的PriceMenu 变量更改为数值(例如double)而不是文本(string),然后您可以使用Select 运算符映射“价格乘以计数”;

    totalCost = cookviewmodel.Select(vm => vm.Count * vm.PriceMenu).Sum()
    

    ps。也许“ordersReceived”是比“cookviewmodel”更好的变量名?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 2014-06-01
      相关资源
      最近更新 更多