1.1简单数组

  1.2 多维数组

  1.3锯齿数组

  1.4Array数组

  1.5作为参数的数组

  1.6枚举

  1.7结构

    以上部分可参考 http://www.cnblogs.com/ztb123/articles/4195864.html

  1.8元组

    数组合并了相同类型的对象,而元组合并了不同类型的对象.Net 4定义了 8个泛型 Tuple类 和一个静态 Tuple类 ,它们用作元组的工厂。 这里的不同泛型 Tuple类支持不同数量的元素。 例如,Tuple<T1> 包含-个元素,Ttple<T1,T2> 包含两个元素,以此类推,元组用Tuple的静态Create()方法创建。

1   public static Tuple<int, int> Divide(int dividend, int divisor)
2         {
3             int result = dividend / divisor;
4             int reminder = dividend % divisor;
5             return Tuple.Create(result, reminder);
6         }
7      
8             var result = Divide(2,3);
9             Console.WriteLine("result if division:{0},reminder:{1}", result.Item1, result.Item2);
Demo

 

如果元组包含的项超过 8个,就可 以使用 带 8个参数的 Tuple类 定义。 最后一个模板参数是 TRrest,表示必须给它传递一个元组。 这样,就可以创建带任意个参数的元组了,可在类上右键转到定义查看。

2集合

  2.1集合和接口类型

  大多数集合类都可在 systm.Collections和 system.Collections.Generic名称空间中找到 。 泛型集合 类 位 于System.Collections.Generic名 称 空 间 中,专门于特定类型的集合类位于System.Collections.Specialized名称空间中,线程安全的集合位于System.Collections.Concurrent名称空间中。

  集合和列表实现的接口:  

  • IEnumerable<T>  如果将Foreache语句用于集合,就需要IEnumerable接口,这个接口定义了GetEnumerator()方法,它返回一个实现了IEnumable接口的枚举。
  • ICollection<T> 这个接口由泛型集合类实现。使用这个接口可以获得集合中的元素个数(Count属性),把集合复制到数组中(CopyTo()方法),还可以从集合中添加和删除元素(Add(),Remove(),Clear())
  • IList<T> 此接口用于 可通过位置访问其中的元素的列表,这个接口定义了一个索引器,可以在集合的指定位置插入或删除某些项,此接口派生自ICollection<T>接口
  • ISet<T> 实现这个接口的集合可以允许合并不同的集,获得2个集合的交集,检查2个集合是否重叠,此接口派生自ICollection<T>接口
  • IDictionary<TKey,TValue> 此接口有包含键和值的泛型集合实现,使用这个接口可以访问所有的键和值,使用键类型的索引可以访问某些项,还可以添加和删除某些项。
  • ILookup<TKey,TValue> 此接口类似于IDictionary<TKey,TValue>接口,实现此接口的集合有键和值,且可以通过一个键包含多个值。
  • IComparer<T> 此接口由比较器实现,通过compare()方法给集合中的元素排序
  • IEquaityComparer<T>此接口由一个比较器实现,发、该比较器可以用于字典中的键。使用这个接口可以对对象进行相等性比较。
  • IProducerConsumerCollection<T>此接口支持新的线程安全的集合类

  2.2列表

  .Net Framework为动态列表提供了泛型类List<T>.这个类实现了IList,IConllection,IEnumerable IList<T>,ICollection<T>和IEnunerable<T>接口。

  使用默认的构造函数创建一个空列表,元素添加到列表后,列表的容量就会扩大为可接纳4个元素,如果添加了第5个元素,列表的大小就会变为原来的2倍,以此类推。如果列表的容量改变了,整个集合就会重新分配到一个新的内存中,所以为了节省时间,如果事先知道列表的容量,就可以用构造函数定义其容量。 

   List<int> list = new List<int>() { 1, 2 };
            list.Add(3);//添加
            list.Insert(0, 4);//插入
            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine(list[i]);//访问元素
            }
            list.RemoveAt(3);//删除
            int num=  list.IndexOf(2);//查找
            list.Sort();//排序
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
            list.AsReadOnly();//设置为只读集合,所有的修改集合的方法和属性都会抛出NotSupportedExection异常
List

相关文章: