程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#之泛型集合類(Ilist,IDictionary)的使用

C#之泛型集合類(Ilist,IDictionary)的使用

編輯:C#入門知識

IDictionary是鍵/值對的泛型集合的基接口,每個元素都是存在keyValuepair對象中的鍵值對。

每一對都必須有唯一的鍵。實現在是否允許 key 為 空引用(在 Visual Basic 中為 Nothing) 方面有所不同。此值可以為 空引用(在 Visual Basic 中為 Nothing),並且不必是唯一的。IDictionary 接口允許對所包含的鍵和值進行枚舉,但這並不意味著任何特定的排序順序。

C# 語言中的 foreach 語句(在 Visual Basic 中為 For Each,在 C++ 中為 for each)需要集合中每個元素的類型。由於 IDictionary 的每個元素都是一個鍵/值對,因此元素類型既不是鍵的類型,也不是值的類型。而是 KeyValuePair 類型。

 

以下是一個簡單的示例程序

 

實體類:

namespace Domain
{

//訂單
    public class Order
    {
        public int OrderID { get; set; }

        /// <summary>
        /// 訂單日期
        /// </summary>
        public DateTime OrderDate { get; set; }

        /// <summary>
        /// 訂單地址
        /// </summary>
        public string OrderAdress { get; set; }

        /// <summary>
        /// 訂單電話
        /// </summary>
        public string OrderTel { get; set; }
    }
}

 

//訂單明細


namespace Domain
{
    public class OrderDetail
    {
        public int DetailID { get; set; }

        public int ProductID { get; set; }

        /// <summary>
        /// 數量
        /// </summary>
        public decimal Quantity { get; set; }

        /// <summary>
        /// 單價
        /// </summary>
        public decimal Price { get; set; }
    }
}

 

//存放數據

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain;

namespace Service
{
    public static class OrderStock
    {
        private static IList<Order> m_orderList = new List<Order>(); //定義了一個List的泛型字段

        public static IList<Order> OrderList//定義了一個List的泛型屬性
        {
            get
            {
                return m_orderList;
            }
            set
            {
                m_orderList = value;
            }
        }

        private static IDictionary<Order, IList<OrderDetail>> m_orders = new Dictionary<Order, IList<OrderDetail>>();

//定義了一個Dictionary的泛型字段,

        public static IDictionary<Order, IList<OrderDetail>> Orders/定義了一個Dictionary的泛型屬性
        {
            get
            {
                return m_orders;
            }
            set
            {
                m_orders = value;
            }
        }
    }
}

 

服務接口

using System;
using Domain;
namespace Service
{
    public interface IOrderService
    {

   //刪除
        void Delete(Domain.Order entity);

       //查詢所有
        System.Collections.Generic.IList<Domain.Order> LoadAll();

   //保存
        object Save(Domain.Order entity);

   //更新
        void Update(Domain.Order entity);

    //根據ID查詢
        Order Get(object id);

   //獲取下一個ID
        object GetNextID();
    }

 

namespace Service
{
    public interface IOrderDetailService
    {
        void Delete(System.Collections.Generic.KeyValuePair<Domain.Order, System.Collections.Generic.IList<Domain.OrderDetail>> entity);
        System.Collections.Generic.KeyValuePair<Domain.Order, System.Collections.Generic.IList<Domain.OrderDetail>> Get(object id);
        object GetNextDetailID(object mainID);
        object GetNextID();
        System.Collections.Generic.IDictionary<Domain.Order, System.Collections.Generic.IList<Domain.OrderDetail>> LoadAll();
        object Save(Domain.Order entity, System.Collections.Generic.IList<Domain.OrderDetail> detail);
        void Update(System.Collections.Generic.KeyValuePair<Domain.Order, System.Collections.Generic.IList<Domain.OrderDetail>> entity);
    }
}

 

服務實現

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain;

namespace Service

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