簡體   English   中英

如何檢索要列出的不同值的總和?

[英]How do I retrieve a sum of distinct values to list?

支持我的應用程序的SQL表和模型與我在下面顯示的非常相似。

Id | CustomerName | FruitName | Charge
_____________________________________
1  | Bob          | Banana    | 3.00 
2  | Jill         | Apple     | 2.00
3  | Bob          | Apple     | 3.00
4  | Marvin       | Banana    | 1.00
5  | Sam          | Pear      | 4.00

[Key]
public int Id {get; set;}
public string CustomerName { get; set; }
public string FruitName { get; set;}
public string Charge {get; set;}

我想要做的是拉出不同的FruitNameCharge.Sum()並在我的視圖中顯示它ToList() 這是我嘗試過的

var fruitToList = (from f in db.fruit select f).ToList();    
var test = fruitToList.GroupBy(x => x.FruitName).Sum(y => y.Charge).Select(z => z.First());
return View(test.ToList());

我知道它不起作用的原因是因為Charge需要像decimal.Parse(y.Charge)但我無法弄清楚如何在Sum()函數中做到這一點。 我應該采取不同的方式嗎?

奇怪的是,收費是一個字符串,但從來沒有那么少,因為數據已經在一個列表中,你可以按水果名稱分組提取費用作為小數並對組進行求和

例如

//...

var test = fruitToList
    .GroupBy(_ => _.FruitName, _ => new { Charge = decimal.Parse(_.Charge) })
    .Select(g => new Fruit {
        FruitName = g.Key,
        Charge = g.Sum(f => f.Charge).ToString()
    });

//...

這也可以進一步簡化

var test = fruitToList
    .GroupBy(_ => _.FruitName, _ => decimal.Parse(_.Charge))
    .Select(g => new Fruit {
        FruitName = g.Key,
        Charge = g.Sum().ToString()
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM