Windows窗体 - 在列表视图中计算子项目?

问题描述 投票:0回答:1

我有一个问题,当在用户界面中多次选择一个产品,然后在列表视图中多次出现...在多行中,我想成为一个有数量和价格的卡布奇诺的行。

enter image description here

我有一个产品清单。

public List<Product> productsList1;

然后

foreach (var item in productsList)
            {
                //listView1.Items.Add(item.ToString());
                ListViewItem lvi = new ListViewItem(item.Name);

                lvi.SubItems.Add(item.Price.ToString());
                listView1.Items.Add(lvi);
            }

列表中只有产品名称和价格.如何在列表中计算它的数量,如果我们有2个卡布奇诺和1个晚点,在列表中有2行并计算它们的数量。

Cappuccino ---> 2 ---> 1 Euro

c# winforms linq listview listviewitem
1个回答
1
投票

在Linq中,你可以做一个group by和sum,然后你可以迭代这个列表。

        var nl = from pl in productsList1
                 group pl by new { pl.Name }  into g
                 select new { Product = g.Key, Quantity = g.Count(), PricePerLine = g.Sum( ss => ss.Price)};

然后你可以迭代这个列表

foreach(var item in nl)
{
    ListViewItem lvi = new ListViewItem(item.Name);

    //Quantity
    ListViewItem lvi = new ListViewItem(item.Quantity .ToString());

    //Price per line item
    lvi.SubItems.Add(item.PricePerLine .ToString());
    listView1.Items.Add(lvi);
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.