• C# 自定义集合


    自定义类型

     public class Product
        {
            public int Id { get; set; }        // 自增ID
            public string Name { get; set; }        // 名称
            public string Code { get; set; }        // 主键
            public string Category { get; set; }        // 类型
            public decimal Price { get; set; }        // 价格
            public DateTime ProduceDate { get; set; }        //产品时间
    
            /// <summary>
            /// 重写ToString 方法
            /// </summary>
            /// <returns></returns>
            public override string ToString()
            {
                return String.Format("{0}{1}{2}{3}{4}{5}",
                this.Id.ToString().PadLeft(2), this.Category.PadLeft(15),
                this.Code.PadLeft(7), this.Name.PadLeft(17), this.Price.ToString().PadLeft(8),
                this.ProduceDate.ToString("yyyy-M-d").PadLeft(13));
            }
            public static ProductCollection GetSampleCollection()
            {
                ProductCollection collection = new ProductCollection(
                        new Product { Id = 1, Code = "1001", Category = "Red Wine", Name = "Torres Coronas", Price = 285.5m, ProduceDate = DateTime.Parse("1997-12-8") },
                        new Product { Id = 3, Code = "2001", Category = "White Spirit", Name = "Mao Tai", Price = 1680m, ProduceDate = DateTime.Parse("2001-5-8") },
                        new Product { Id = 4, Code = "2013", Category = "White Spirit", Name = "Wu Liang Ye", Price = 1260m, ProduceDate = DateTime.Parse("2005-8-1") },
                        new Product { Id = 8, Code = "3001", Category = "Beer", Name = "TSINGTAO", Price = 6.5m, ProduceDate = DateTime.Parse("2012-4-21") },
                        new Product { Id = 11, Code = "1003", Category = "Red Wine", Name = "Borie Noaillan", Price = 468m, ProduceDate = DateTime.Parse("1995-7-6") },
                        new Product { Id = 15, Code = "1007", Category = "Red Wine", Name = "Pinot Noir Rose", Price = 710m, ProduceDate = DateTime.Parse("1988-9-10") },
                        new Product { Id = 17, Code = "3009", Category = "Beer", Name = "Kingway", Price = 5.5m, ProduceDate = DateTime.Parse("2012-6-13") }
                );
                return collection;
            }
        }
    

      自定义的集合方法

    public class ProductCollection
        {
            public Hashtable table; 
            public ProductCollection()
            {
                table = new Hashtable();
            }
    
            public ProductCollection(params Product[] array)
            {//初始化
                table = new Hashtable();
                foreach (Product item in array)
                {
                    this.Add(item);
                }
            }
    
            public ICollection Keys { get { return table.Keys; } }
    
            /// <summary>
            /// 根据索引获取当前Key值
            /// </summary>
            /// <param name="index">索引</param>
            /// <returns></returns>
            public string GetKeys(int index)
            {
                if (index < 0 || index > table.Keys.Count)
                    throw new Exception("超出索引范围");
                string selectN = "";
                int i = 0;
                foreach (string item in table.Keys)
                {
                    if (index == i)
                    {
                        selectN = item; break;
                    }
                    i++;
                }
                return selectN;
            }
    
            public Product this[int index]
            {
                get
                {
                    string key = GetKeys(index);
                    return table[key] as Product;
                }
                set { string key = GetKeys(index); table[key] = value; }
            }
            /// <summary>
            /// 根据Key值获得对应内容
            /// </summary>
            /// <param name="Name"></param>
            /// <returns></returns>
            public string GetKeys(string Name)
            {
                foreach (string item in table.Keys)
                {
                    if (item==Name)
                    {
                        return item;
                    }
                }
                throw new Exception("不存在此键值");
            }
    
            public Product this[string Name]
            {
                get
                {
                    string selects = GetKeys(Name);
                    return table[selects] as Product;
                }
                set
                {
                    string key = GetKeys(Name);
                    table.Remove(table[key]);
                    this.Add(value);
                }
            }
    
    
            /// <summary>
            /// 添加功能
            /// </summary>
            /// <param name="item">添加类</param>
            public void Add(Product item)
            {
                foreach (string key in table.Keys)
                {
                    if(key==item.Code)
                        throw new Exception("产品代码不能重复");
                } 
                table.Add(item.Code,item);
            }
           
            /// <summary>
            /// 移除功能
            /// </summary>
            /// <param name="item">添加类</param>
            public bool Remove(Product item)
            {
                try
                {
                    table.Remove(item.Code);
                    return true;
                }
                catch 
                {
    
                    return false;
                }
             
            } 
            /// <summary>
            /// 移除指定索引项
            /// </summary>
            /// <param name="index"></param>
            /// <returns></returns>
            public bool Remove(int index)
            {
    
                if (index < 0 || index > table.Count)
                    throw new Exception("超出索引范围");
                string key = GetKeys(index);
                table.Remove(key);
                return true; 
            }
            /// <summary>
            /// 清除所有内容
            /// </summary>
            public void clear()
            {
                table = new Hashtable();
            }
            /// <summary>
            /// 获取总数
            /// </summary>
            public int Count { get { return table.Keys.Count; } }
    
    
    
        }
    

      

  • 相关阅读:
    技术沙龙.:主题为《代码解析Castle(IOC)应用实例 -开源CMS 系统Cuyahoga》
    Active Record和Domain Object + Dao
    SNMP++.NET 项目
    微软发布Windows Vista Tips and Tricks网站
    2007 Office System Video
    使用搜索引擎搜索结果
    我购买了一台acer笔记本
    有价值的杂志《MSDN杂志》中文版
    Spring2.0中文参考手册(中文版) [转自CSDN论坛]
    开源项目Generics.Net介绍
  • 原文地址:https://www.cnblogs.com/xiao-bei/p/4056926.html
Copyright © 2020-2023  润新知