zoukankan      html  css  js  c++  java
  • Table是怎样炼成的:Column、ColumnCollection

    描述数据列的类定义

     1    /// <summary>
     2    /// 描述数据列
     3    /// </summary>

     4    public class Column
     5    {
     6
     7
     8        public Column(string name, Type type)
     9            : this(name, type, null)
    10        {
    11
    12        }

    13
    14        public Column(string name, Type type,object defaultValue)
    15        {
    16            ColumnName = name;
    17            DataType = type;
    18            DefaultValue = defaultValue;
    19        }

    20
    21        /// <summary>
    22        /// 获取或设置列的名称
    23        /// </summary>

    24        public readonly string ColumnName;
    25        /// <summary>
    26        /// 获取或设置列的数据类型
    27        /// </summary>

    28        public readonly System.Type DataType;
    29        /// <summary>
    30        /// 获取或设置列的默认值
    31        /// </summary>

    32        public object DefaultValue = null;
    33
    34
    35    }


    定义ColumnCollection
     1    /// <summary>
     2    /// 描述或设置列的集合
     3    /// </summary>

     4    public class ColumnCollection : System.Collections.CollectionBase
     5    {
     6        /// <summary>
     7        /// 设置或获取指定的列
     8        /// </summary>
     9        /// <param name="index"></param>
    10        /// <returns></returns>

    11        public Column this[int index]
    12        {
    13            get
    14            {
    15                return (Column)this.InnerList[index];
    16            }

    17            set
    18            {
    19                this.InnerList[index] = value;
    20            }

    21        }

    22
    23        /// <summary>
    24        /// 设置或获取指定的列
    25        /// </summary>
    26        /// <param name="index"></param>
    27        /// <returns></returns>

    28        public Column this[string columnName]
    29        {
    30            get
    31            {
    32                return (Column)this[this.IndexOf(columnName)];
    33            }

    34            set
    35            {
    36                this[this.IndexOf(columnName)] = value;
    37            }

    38        }

    39
    40        private System.Collections.ArrayList colNames=new System.Collections.ArrayList();
    41
    42        /// <summary>
    43        /// 添加一个列
    44        /// </summary>
    45        /// <param name="column">列的实例</param>

    46        public void Add(Column column)
    47        {
    48            if(!colNames.Contains(column.ColumnName))
    49            {
    50                this.InnerList.Add(column);
    51                colNames.Add(column.ColumnName);
    52            }

    53            
    54        }

    55        
    56        /// <summary>
    57        /// 添加一个列
    58        /// </summary>
    59        /// <param name="name">列的名称</param>
    60        /// <param name="type">列的类型</param>

    61        public void Add(string name, Type type, object defaultValue)
    62        {
    63            this.Add(new Column(name, type,defaultValue));
    64        }

    65
    66        /// <summary>
    67        /// 返回列的名称是否包含在集合中
    68        /// </summary>
    69        /// <param name="columnName">列的名称</param>
    70        /// <returns>如果已经包含,则返回true,否则为false</returns>

    71        public bool Contains(string columnName)
    72        {
    73            return colNames.Contains(colNames); 
    74        }

    75
    76        /// <summary>
    77        /// 返回列的位置
    78        /// </summary>
    79        /// <param name="column">列的实例</param>
    80        /// <returns>如果没有包含则返回-1,否则从0开始的索引</returns>

    81        public int IndexOf(Column column)
    82        {
    83            return this.IndexOf(column.ColumnName);
    84        }

    85
    86        /// <summary>
    87        /// 返回列的位置
    88        /// </summary>
    89        /// <param name="column">列的实例</param>
    90        /// <returns>如果没有包含则返回-1,否则从0开始的索引</returns>

    91        public int IndexOf(string columnName)
    92        {
    93            return colNames.IndexOf(columnName);
    94        }

    95    }


    下一篇,我们终于可以定义Table了
  • 相关阅读:
    成为 Linux 内核高手的四个方法
    专访CEO何朝曦:深信服高速成长的秘诀
    世界上最让人痛苦的是无所事事(年纪轻轻当项目经理、研发总监真的不好)
    2015 8月之后"云计算"学习计划
    程辉:创造云计算的第四种商业模式(送源码的托管云)
    配置restful webservice 框架restkit
    跟我一起玩转Sencha Touch 移动 WebApp 开发1
    数据更新最佳实践
    addEventListener和attachEvent以及element.onclick的区别
    java线程池:ThreadPoolExecutor
  • 原文地址:https://www.cnblogs.com/shyleoking/p/649808.html
Copyright © 2011-2022 走看看