作者ashram (アシュラム)
看板C_Sharp
標題Re: [問題] List<?>整合其元素,求解!!
時間Mon Nov 8 13:15:50 2010
※ 引述《demoboy (demoboy)》之銘言:
: struct Item {
: private string itemName;
: private int itemCount;
: public string ItemName{get;set;}
: public int ItemCount{get;set;}
: }
: List<Item> product = new List<Item>();
: Item pItem = new Item();
: pItem.ItemName = "AAA";
: pItem.ItemCount = 2;
: product.Add(pItem);
: pItem.ItemName = "BBB";
: pItem.ItemCount = 1;
: product.Add(pItem);
: pItem.ItemName = "AAA";
: pItem.ItemCount = 3;
: product.Add(pItem);
: 我想請問各位大大,在List中我們能夠知道現在有3個元素在裡面.
: 那我想要請問一下,要怎麼整合相同ItemName的元素並將其ItemCount做相加.
: 就如同上面的例子中,將List中3元素整合成2個元素.
: ex:
: 1. ItemName = "AAA", ItemCount=5;
: 2. ItemName = "BBB", ItemCount=1;
: 請指教!!謝謝
可以使用linq
var newList = (from p in product
group p by p.ItemName into g
select new Item
{
ItemName = g.Key,
ItemCount = g.Sum(p => p.ItemCount)
}
).ToList();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.63.33.120
→ demoboy:謝謝您,那我想請教是否能在加入元素時做判斷並整合? 11/08 20:27
→ ashram:能舉個例子嗎? 不太懂你的意思 11/08 22:01