程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 求一個集合的集合下所有集合元素求值,元素求值

求一個集合的集合下所有集合元素求值,元素求值

編輯:C#入門知識

求一個集合的集合下所有集合元素求值,元素求值


 

場景是這樣的:Order下有一個Suppler的集合,即一個訂單下可能有多個供應商;Supplier下有一個Product的集合,即對一個供應商采購多個產品。

需求是這樣的:算出所有訂購產品的總價

模型這樣:

    public class Order
    {
        public int OrderId { get; set; }
        public ICollection<Supplier> Suppliers { get; set; }

        public Order()
        {
            Suppliers = new List<Supplier>();
        }
    }

    public class Supplier
    {
        public int SupplierId { get; set; }

        public ICollection<Product> Products { get; set; }

        public Supplier()
        {
            Products = new List<Product>();
        }
    }

    public class Product
    {
        public int ProductId { get; set; }
        public decimal UnitPrice { get; set; }
        public int Quantity { get; set; }
    }

 

這樣算出總價:

        static void Main(string[] args)
        {

            var orders = new List<Order>
            {
                new Order
                {
                    OrderId = 1,
                    Suppliers = new List<Supplier>
                    {
                        new Supplier {SupplierId=11, Products= new List<Product>
                        {
                            new Product {ProductId=111, Quantity=1, UnitPrice=10 },
                            new Product {ProductId = 112, Quantity =1, UnitPrice = 20 }
                        } },
                        new Supplier {SupplierId =12, Products = new List<Product>
                        {
                            new Product {ProductId =113, Quantity =2, UnitPrice=30 },
                            new Product {ProductId=114, Quantity=1, UnitPrice=50 }
                        } }
                    }
                }
            };

            var suppliers = orders.Select(t => t.Suppliers);

            var productTotalPrice = suppliers.Sum(t => t.Sum(p => p.Products.Sum(o => o.Quantity * o.UnitPrice)));

            Console.WriteLine(productTotalPrice);
            Console.ReadKey();
        }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved