我試圖做一個典型的網上商店,到目前爲止一切工作,但我得到了以下問題:如何將List中的重複數據庫值替換爲數量,並將它們列入ListView?例如如果我在購物車中添加兩個相同的產品,我希望能夠顯示數量,而不是在購物車清單中顯示兩個相同的產品。如何將表中的重複值替換爲「數量」?
PS:我在ListView中列出了我的結果。
(用於購物車的Form_Load):
using (eShopEntities db = new eShopEntities()){
var list = new List<Product>(db.Products.ToList());
var listFilter = new List<Product>();
foreach (var id in list)
{
foreach (var Sessions in SessionData)//got selected products stored in sessions
{
if (id.ID == Sessions)
{
listFilter.Add(id); //Add all selected products(via session)
}
}
}
int TotSum = 0;
foreach (var sum in listFilter)
{
TotSum = TotSum + sum.Price;
}
cartListView.DataSource = listFilter; cartListView.DataBind();
lblSum.Text = TotSum.ToString();
}
現在,一切都被列在ASPX。但我不知道如何替換重複的數量從listFilter 和發送量子數據連同從listFilter結果cartListWiev togheter。
我的產品表(SQL):ID(PK),名稱,ImagePath的,價格和CatergoryID(FK)
感謝
var result = list.GroupBy(x => x.Name).select({y => new Product(){Name = y.Name,Price = y.Sum(y1 => y1.Price)}})。ToList();我想你正在尋找基於名稱的GroupBy。 – Rangesh
謝謝,但我不能讓它的工作,得到以下錯誤的「選擇」部分:「無法解析符號'選擇'/」IEnumerable <| Igrouping <字符串,產品>>不包含'選擇'的定義...「 。我不知道如何解決這個問題。 – Nyprez
添加System.Linq引用並嘗試搜索linq grouby sum,它必須幫助你。 – Rangesh