Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 22445|Atsakyti: 0

[Šaltinis] Bendrųjų rinkimo klasių (Ilist, IDictionary) naudojimas C#

[Kopijuoti nuorodą]
Paskelbta 2015-04-10 17:22:50 | | |

IDictionary yra pagrindinė sąsaja bendram rakto / reikšmės porų rinkiniui, kurių kiekviena yra rakto ir reikšmės pora keyValuePair objekte.

Kiekviena pora turi turėti unikalų raktą. Įgyvendinimas skiriasi tuo, ar leisti raktui būti tuščia nuoroda (Nieko Visual Basic). Ši reikšmė gali būti tuščia nuoroda (Nieko Visual Basic) ir nebūtinai turi būti unikali. IDictionary sąsaja leidžia išvardyti joje esančius raktus ir reikšmes, tačiau tai nereiškia jokios konkrečios rūšiavimo tvarkos.

Foreach sakinys C# kalba (kiekvienam Visual Basic ir kiekvienam C++) reikalauja kiekvieno rinkinio elemento tipo. Kadangi kiekvienas IDictionary elementas yra rakto/reikšmės pora, elemento tipas nėra nei rakto, nei reikšmės tipas. Vietoj to, tai yra KeyValuePair tipas.



Čia yra paprastas programos pavyzdys



Subjekto klasė:

vardų srities domenas
{

//订单
    viešoji klasė Tvarka
    {
        public int OrderID { get; rinkinys; }

        /// <summary>
        Užsakymo data
        /// </summary>
        public DateTime OrderDate { get; rinkinys; }

        /// <summary>
        Užsakymo adresas
        /// </summary>
        viešoji eilutė OrderAdress { get; rinkinys; }

        /// <summary>
        Užsakyti telefoną
        /// </summary>
        viešoji eilutė OrderTel { get; rinkinys; }
    }
}



//订单明细


vardų srities domenas
{
    viešoji klasė OrderDetail
    {
        public int DetailID { get; rinkinys; }

        public int ProductID { get; rinkinys; }

        /// <summary>
        Kiekis
        /// </summary>
        viešasis dešimtainis Kiekis { gauti; rinkinys; }

        /// <summary>
        Vieneto kaina
        /// </summary>
        viešoji dešimtainė kaina { gauti; rinkinys; }
    }
}



//存放数据

naudojantis Sistema;
naudojant System.Collections.Generic;
naudojant System.Linq;
naudojant System.Text;
naudojant domeną;

vardų srities tarnyba
{
    viešoji statinė klasė OrderStock
    {
        privatus statinis IList<Order> m_orderList = naujas List<Order>(); Bendrojo sąrašo lauko apibrėžimas

        viešas statinis IList<Order> OrderList// apibrėžia bendrąją sąrašo ypatybę
        {
            gauti
            {
                grąžinti m_orderList;
            }
            nustatyti
            {
                m_orderList = vertė;
            }
        }

        privatus statinis IDictionary<Order, IList<OrderDetail>> m_orders = naujas žodynas<tvarka, IList<OrderDetail>>();

//定义了一个Dictionary的泛型字段,

        public static IDictionary<Order, IList<OrderDetail>> Orders/ apibrėžia bendrąją žodyno savybę
        {
            gauti
            {
                grąžinti m_orders;
            }
            nustatyti
            {
                m_orders = vertė;
            }
        }
    }
}



Paslaugų sąsajos

naudojantis Sistema;
naudojant domeną;
vardų srities tarnyba
{
    viešoji sąsaja IOrderService
    {

//删除
        void Delete(objektas Domain.Order);

       Užklausti visus
        System.Collections.Generic.IList<Domain.Order> LoadAll();

//保存
        objektas Save(objektas Domain.Order);

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

  Užklausa pagal ID
        Užsakymas Get(objekto ID);

//获取下一个ID
        objektas GetNextID();
    }



vardų srities tarnyba
{
    viešoji sąsaja IOrderDetailService
    {
        void Delete(System.Collections.Generic.KeyValuePair<Domain.Order, System.Collections.Generic.IList<Domain.OrderDetail>> objektas);
        System.Collections.Generic.KeyValuePair<Domain.Order, System.Collections.Generic.IList<Domain.OrderDetail>> Get(objekto ID);
        objektas GetNextDetailID(objekto mainID);
        objektas GetNextID();
        System.Collections.Generic.IDictionary<Domain.Order, System.Collections.Generic.IList<Domain.OrderDetail>> LoadAll();
        objektas Save(objektas Domain.Order, System.Collections.Generic.IList<Domain.OrderDetail> išsami informacija);
        void Update(System.Collections.Generic.KeyValuePair<Domain.Order, System.Collections.Generic.IList<Domain.OrderDetail>> objektas);
    }
}



Paslaugų realizavimas

naudojantis Sistema;
naudojant System.Collections.Generic;
naudojant System.Linq;
naudojant System.Text;
naudojant domeną;

vardų srities tarnyba
{
    viešoji klasė Užsakymo paslauga: IOrderService
    {
        viešasis IList<Order> LoadAll()
        {
            var list = OrderStock.OrderList;

            grąžinimo sąrašas;
        }

        viešasis objektas GetNextID()
        {
            int id = 1;
            if (OrderStock.OrderList.Count > 0)
            {
                id = OrderStock.OrderList.Max(m => m.OrderID) + 1;
            }
            grąžinimo ID;
        }

        viešasis objektas Įrašyti(Užsakymo objektas)
        {
            OrderStock.OrderList.Add(objektas);

            grąžinimo subjektas. Užsakymo ID;
        }

        public void Update(Užsakymo objektas)
        {
            var list = OrderStock.OrderList.Where(w => w.OrderID == objektas. Užsakymo ID);

            jei (sąrašas. Skaičius<Order>() > 0)
            {
                Užsakymo tvarka = sąrašas. Pirmas();
                OrderStock.OrderList[OrderStock.OrderList.IndexOf(order)] = objektas;
            }
        }

        viešoji tvarka Get(objekto ID)
        {
            Užsakymo objektas = null;
            var list = OrderStock.OrderList.Where(w => w.OrderID == (int)id);
            jei (sąrašas. Skaičius<Order>() > 0)
            {
                Užsakymo tvarka = sąrašas. Pirmas();
                subjektas = OrderStock.OrderList[OrderStock.OrderList.IndexOf(order)];
            }
            grąžinimo subjektas;
        }

        public void Delete(Užsakymo objektas)
        {
            var list = OrderStock.OrderList.Where(w => w.OrderID == objektas. Užsakymo ID);
            jei (sąrašas. Skaičius<Order>() > 0)
            {
                Užsakymo tvarka = sąrašas. Pirmas();
                OrderStock.OrderList.Remove(užsakymas);
            }
        }
    }
}





naudojantis Sistema;
naudojant System.Collections.Generic;
naudojant System.Linq;
naudojant System.Text;
naudojant domeną;

vardų srities tarnyba
{
    viešoji klasė OrderDetailService : IOrderDetailService
    {
        viešasis IDictionary<Order, IList<OrderDetail>> LoadAll()
        {
            var dic = OrderStock.Orders;

            grąžinti dic;
        }

        viešasis objektas GetNextID()
        {
            int id = 1;
            if (OrderStock.Orders.Count > 0)
            {
                id = OrderStock.Orders.Max(m => m.Key.OrderID) + 1;
            }
            grąžinimo ID;
        }

        viešasis objektas GetNextDetailID(objekto mainID)
        {
            int id = 1;
            var dic = OrderStock.Orders.Where(w => w.Key.OrderID == (int)mainID);
            if (dic.Count<KeyValuePair<Order, IList<OrderDetail>>>() > 0)
            {
                var elementas = dic.Pirmas();
                var list = elementas. Value.Where(w => w.DetailID == (int)mainID);
                jei (sąrašas. Skaičius<OrderDetail>() > 0)
                {
                    id = sąrašas. Pirmas(). DetailID + 1;
                }
            }
            grąžinimo ID;
        }

        viešasis objektas Įrašyti(Užsakymo objektas, IList<OrderDetail> išsami informacija)
        {
            objekto rezultatas = nulinis;
            jei (! OrderStock.Orders.ContainsKey(objektas))
            {
                OrderStock.Orders.Add(subjektas, detalė);
                rezultatas = subjektas. Užsakymo ID;
            }
            grąžinti rezultatą;
        }

        public void Update(KeyValuePair<Order, IList<OrderDetail>> objektas)
        {
            if (OrderStock.Orders.ContainsKey(objektas. Raktas))
            {
                OrderStock.Orders[objektas. Raktas] = objektas. Vertė;
            }
        }

        public KeyValuePair<Order, IList<OrderDetail>> Get(objekto ID)
        {
           
            KeyValuePair<Order, IList<OrderDetail>> objektas = naujas KeyValuePair<Order, IList<OrderDetail>>();
            var dic = OrderStock.Orders.Where(w => w.Key.OrderID == (int)id);
            if (dic.Count<KeyValuePair<Order, IList<OrderDetail>>>() > 0)
            {
                subjektas = dic.Pirmas();
            }
            
            grąžinimo subjektas;
        }

        public void Delete(KeyValuePair<Order, IList<OrderDetail>> objektas)
        {
            if (OrderStock.Orders.ContainsKey(objektas. Raktas))
            {
                OrderStock.Orders.Remove(objektas. Raktas);
            }
        }
    }
}



Bandymo

naudojantis Sistema;
naudojant System.Collections.Generic;
naudojant System.Linq;
naudojant System.Text;
naudojant NUnit.Framework;
naudojantis Paslauga;
naudojant domeną;

vardų srities ServiceTest
{
    [Testas]
    viešoji klasė OrderServiceTest
    {
        privatus IOrderService m_service;

        [Nustatymas]
        public void Init()
        {
            m_service = naujas OrderService();
        }

        [Testas]
        public void LoadAllTest()
        {
           var list= m_service. LoadAll();
           foreach (varo elementas sąraše)
           {
               Console.WriteLine(elementas. Užsakymo ID);
               Console.WriteLine(elementas. OrderAdress);
               Console.WriteLine(elementas. OrderDate);
               Console.WriteLine(elementas. OrderTel);
           }
           Assert.IsNotNull(sąrašas);
        }

        [Testas]
        public void Save()
        {
            Užsakymo objektas = naujas Užsakymas()
            {
                Užsakymo ID = (int)m_service. GetNextID(),
                OrderDate = DateTime.Now.AddDays(-1),
                OrderAdress = "Urumqi",
                OrderTel = "123123"
            };
            objektas obj = m_service. Išsaugoti (subjektas);
           
            Assert.IsNotNull(obj);
        }

        [Testas]
        public void Update()
        {
            Užsakymo objektas = m_service. Gauti(1);
            subjektas. OrderAdress = "Korla";
            m_service. Update(objektas);
        }

        [Testas]
        public void Delete()
        {
            Užsakymo objektas = m_service. Gauti(1);
            subjektas. OrderAdress = "Korla";
            m_service. Delete(objektas);
        }
    }
}



naudojantis Sistema;
naudojant System.Collections.Generic;
naudojant System.Linq;
naudojant System.Text;
naudojant NUnit.Framework;
naudojantis Paslauga;
naudojant domeną;

vardų srities ServiceTest
{
    [Testas]
    viešoji klasė OrderServiceDetailTest
    {
        privatus IOrderDetailService m_service;

        [Nustatymas]
        public void Init()
        {
            m_service = naujas OrderDetailService();
        }

        [Testas]
        public void LoadAllTest()
        {
           var list= m_service. LoadAll();
           foreach (varo elementas sąraše)
           {
               Console.WriteLine("-------------- užsakymo ----------");
               Console.WriteLine(elementas. Key.OrderID);
               Console.WriteLine(elementas. Key.OrderAdress);
               Console.WriteLine(elementas. Key.OrderDate);
               Console.WriteLine(elementas. Key.OrderTel);
               Console.WriteLine("-------------- užsakymo informacija ----------");
               foreach (var li in item. Vertė)
               {
                   Console.WriteLine(li.DetailID);
                   Console.WriteLine(li.Price);
                   Console.WriteLine(li.Kiekis);
                   Console.WriteLine(li.ProductID);
               }
           }
           Assert.IsNotNull(sąrašas);
        }

        [Testas]
        public void Save()
        {
            int id = (int)m_service. GetNextID();
            Užsakymo objektas = naujas Užsakymas()
            {
                Užsakymo ID = id,
                OrderDate = DateTime.Now.AddDays(-1),
                OrderAdress = "Urumqi",
                OrderTel = "123123"
            };
            IList<OrderDetail> list = naujas List<OrderDetail>();
            for (int i = 0; i < 3; i++)
            {
                sąrašą. Add(nauja OrderDetail() {
                    DetailID = i + 1,
                    Kaina=10+i,
                    Kiekis=i+100,
                    Produkto ID = 1000 + i
                });
            }
            objektas obj = m_service. Išsaugoti(subjektas, sąrašas);
           
            Assert.IsNotNull(obj);
        }

        [Testas]
        public void Update()
        {
            var subjektas = m_service. Gauti(1);

            subjektas. Value[0] = new OrderDetail()
            {
                Produkto ID = 1000,
                DetailID = 1,
                Kaina = 13,34 mln.,
                Kiekis = 200.1M
            };
            m_service. Update(objektas);
        }

        [Testas]
        public void Delete()
        {
            var subjektas = m_service. Gauti(1);
            m_service. Delete(objektas);
        }
    }
}



Pastaba: bandydami turite nurodyti nunit.framework įrankį




Ankstesnis:Bendrinkite du CC atakų įrankius, tinkamus testavimui nepalankiausiomis sąlygomis
Kitą:Bi Fujian išleido atsiprašymo laišką Weibo: Jaučiuosi labai kaltas ir liūdnas
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com