zoukankan      html  css  js  c++  java
  • c#中的集合

    1.集合
    ArrayList
    Hashtable
    这两个集合在添加数据的时候,什么类型的数据都可以,因为是赋给object.但当从中去数据的时候,则会发生强制转换。即:这两个集合会发生拆装箱。
    List<>list = new List<>;
    list.Add()
    list.AddRange()
    list.Insert()
    list.InsertRange()
    list.Remove()
    list.RemoveRange()
    list.RemoveAt()
    list.Contains()//判断是否包含

    Dictionary<> dic = new Dictionary<>();
    dic.Add();

    foreach(KeyValuePair<>kv in dic )
    {kv.Key ;kv.Value}

    练习1.将int数组中的奇数放到一个新的int数组中返回。
    //练习1.将int数组中的奇数放到一个新的int数组中返回。
                int[] arr = {1,2,3,4,5,6,7,8,9,0 };
                List<int> list = new List<int>();
                for (int i = 0; i < arr.Length; i++)
                {
                    if(arr[i]%2 !=0)
                    {
                        list.Add(arr[i]);
                    }
                }
              arr = list.ToArray();
                foreach(var item in arr)
                {
                    Console.WriteLine(item);
                }
                Console.ReadKey();
            }

    集合初始化器
    List<int>list = new List<int>(){1,2,3,4,5,676,78};
    等价与list.AddRange(new int[]1,2,3,4,5,676,78});
    对象初始化器
    person p = new person(){name = " " , age = 12};

    创建一个集合ArrayList
                ArrayList list = new ArrayList();
                //集合中可以添加任意类型元素
               // list.Add主要用于添加单个元素
                list.Add(2);
                list.Add(3.14);
                //list.Add(new int[]{1,2,3,4,5,6});//这个不能直接输出,需要进行类型强制转换后才能输出
                //list.Range()用于添加集合元素
                list.AddRange(new int []{1,2,3,4,5,6});//采用range添加的集合能后用for输出。
                for (int i = 0; i < list.Count; i++)
                {
                    Console.WriteLine(list[i]);
                }
                list.AddRange(list);//添加list集合
                //移除单个元素
                list.Remove(true);
                //根据下标移除元素
                list.RemoveAt(0);
                list.Clear();//清空集合

                list.RemoveRange(0,4);//根据下标移除一定范围的元素

                list.Sort();//升序排列,但必须满足的条件是集合中的元素类型要一致

                list.Reverse();//将集合中的元素反转

                list.Insert(0,'1');//在指定下标前,插入单个字符
                list.InsertRange(0,new int []{1,2,3});//在指定的下标前插入一个集合

                bool b = list.Contains(1);//判断集合中是否包含某元素


    5.ArrayList集合中的长度问题
    每次集合中实际包含的元素的个数(count)超过了包含元素的个数(capacity)的时候,集合就会向内存中申请多开辟一赔的空间,来保证集合的长度一直够用。(按照2的倍数增大)

    6.hashtable 键值对集合
    var d = 2;//根据赋值推断变量的类型。

    键值对集合中,键必须是唯一的,值可以重复。


    ht.ContainsKey();//判断是否有某个键

    ht.clear();//清空集合中的所有元素
    ht.Remove();//根据键去移除元素

    Hashtable ht = new Hashtable();
                //添加键值对到集合中去
                ht.Add(1 ,"张三");
                ht.Add(2,2);
                ht.Add(false ,"你是错五的");
                //添加数据的另一种方式   这种形式的添加数据,如果有键了,则会干掉原有的值,添加新的值
                ht[6] = "  xinglaisde";
                foreach(var item in ht.Keys)
                {
                    Console.WriteLine("键{0} ,值{1}",item,ht[item]);
                }

  • 相关阅读:
    jQuery 自执行函数
    IRelationalOperator空间关系接口简介
    9.2 空间拓扑运算[转]
    解决关于ArcGIS10.2服务手动启动的问题
    Multipart to single part feature
    Multipart polyline to single part lines
    VS2015 C#6.0 中的没有实现/支持的特性
    VS2015 C#6.0 中的那些新特性
    ArcGIS中各种合并要素(Union、Merge、Append、Dissolve)的异同点分析 转载
    FME2010 案例分析: 动态批量转换
  • 原文地址:https://www.cnblogs.com/jefy/p/9207527.html
Copyright © 2011-2022 走看看