Csharp/CSharp Tutorial/Generic/Define Generic Collection

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Create generic Bag collection class based on generic List

using System;
using System.Collections.Generic;
public class Bag<T>
{
    private List<T> items = new List<T>();
    public void Add(T item)
    {
        items.Add(item);
    }
    public T Remove()
    {
        T item = default(T);
        if (items.Count != 0)
        {
            item = items[0];
            items.RemoveAt(0);
        }
        return item;
    }
    public T[] RemoveAll()
    {
        T[] i = items.ToArray();
        items.Clear();
        return i;
    }
}
public class MainClass
{
    public static void Main(string[] args)
    {
        Bag<string> bag = new Bag<string>();
        bag.Add("D");
        bag.Add("B");
        bag.Add("G");
        bag.Add("M");
        bag.Add("N");
        bag.Add("I");
        Console.WriteLine("Item 1 = {0}", bag.Remove());
        Console.WriteLine("Item 2 = {0}", bag.Remove());
        Console.WriteLine("Item 3 = {0}", bag.Remove());
        Console.WriteLine("Item 4 = {0}", bag.Remove());
        string[] s = bag.RemoveAll();
    }
}
Item 1 = D
Item 2 = B
Item 3 = G
Item 4 = M

Typeof Operator for generic collection

using System;
using System.Collections.Generic;
using System.ruponentModel;
    class MainClass
    {
        static internal void DemonstrateTypeof<X>()
        {
            Console.WriteLine(typeof(X));
            Console.WriteLine(typeof(List<X>));
            Console.WriteLine(typeof(Dictionary<string, X>));
            Console.WriteLine(typeof(List<long>));
            Console.WriteLine(typeof(Dictionary<long, Guid>));
        }
        static void Main()
        {
            DemonstrateTypeof<int>();
        }
    }