C#从入门到精通之数组和集合

22 篇文章 2 订阅
1.数组的声明
一维数组的声明 int[] arr = new int[2];
二维数组的声明 int[,] arr2 = new int[2,2] 

2.遍历数组
示例: 遍历数组
int[] arr = new int[5] { 1, 2, 3, 4, 5 };
 foreach (int num in arr)
   {
       Console.WriteLine(num);
   }
   Console.ReadLine();

3. 数组排序(冒泡排序、直接插入法和选择排序法)

a.冒泡排序
        public void mp()
        {
            int[] arr = new int[] { 9,23,54,876,1,34,8,94,83};   //定义一个数组并赋值
            int m, n;
            for (int i = 0; i < arr.Length-1; i++)
            {
                m = i + 1;
                dd:
                if (arr[i] > arr[m])
                {
                    n = arr[m];
                    arr[m] = arr[i];
                    arr[i] = n;
                    goto dd;
                }
                else if (m < arr.Length - 1)
                {
                    m++;
                    goto dd;
                }
            }
            foreach (int a in arr)  //遍历输出数组
            {
                Console.Write(a + "  ");
                Console.ReadLine();
            }
        }

b.直接插入法
        public void zc()
        {
            int[] arr = new int[] { 21, 3, 34, 4, 56, 543, 58 };
            for (int i = 0; i < arr.Length; ++i)  //循环访问数组中的元素
            {
                int temp = arr[i];
                int j = i;
                while((j>0)&& (arr[j-1]>temp)) //判断数组中的元素是否大于获取的元素
                {
                    arr[j] = arr[j - 1];    //如果是则将后一个元素的值提前
                    --j;
                }
                arr[j] = temp;      //最后将int变量存储的值赋值给最后一个元素
            }
            foreach (int a in arr)  //遍历输出数组
            {
                Console.Write(a + "  ");
                Console.ReadLine();
            }


        }

c.选择排序法
        public void xz()
        {
            int[] arr =new  int[]{2,43,545,6,435,5,8,7 };
            int min;
            for (int i = 0; i < arr.Length - 1; i++)
            {
                min = i;
                for (int j = i + 1; j < arr.Length; j++)
                {
                    if (arr[j] < arr[min])
                    {
                        min = j;
                    }
                }
                int t = arr[min];
                arr[min] = arr[i];
                arr[i] = t;
            }
            foreach (int a in arr)  //遍历输出数组
            {
                Console.Write(a + "  ");
                Console.ReadLine();
            }
        }

4.Array类的Sort和Reverse排序方法
Array.Sort方法用于对一维Array数组中的元素进行排序,
Array.Reverse方法用于反转一维数组或部分Array数组中元素的顺序

5.ArrayList类概述
ArrayList类位于System.Collection命名空间下,可以将之看做扩充了功能的数组,但它并不等同于数组

ArrayList常用属性
Capacity  获取或设置ArrayList可包含的元素数
Count     获取ArrayList中实际包含的元素数
IsFixedSize  获取一个值,该值指示ArrayList是否具有固定大小
IsReadOnly   获取一个值,该值指示ArrayList是否为只读
IsSynchronized   获取一个值,该值指示是否同步对ArrayList的访问
Item     获取或设置指定索引处的元素
SyncRoot 获取可用于同步ArrayList访问的对象

ArrayList元素的添加
a.Add方法  将对象添加到ArrayList集合的结尾处
b.Insert(int index,Object value)方法  将元素插入ArrayList集合的指定索引处

ArrayList元素的删除
Clear()方法   移除 ArrayList中所有的元素
Remove(Object obj)方法  移除特定对象的第一个匹配项
RemoveAt(int index) 移除指定索引处的元素
RemoveRange(int index,int count)  移除一定范围的元素

ArrayList元素的查找
Contains(Object item)  确定某元素是否在ArrayList集合中

6.Hashtable(哈希表) 它表示键/值对的集合

Hashtable常用属性及说明
Count 获取包含在Hashtable中的键/值对的数目
IsFixedSize  获取一个指示Hashtable是否具有固定大小的值
IsReadOnly  获取一个指示Hashtable是否为只读的值
IsSynchronized  获取一个指示是否同步对Hashtable的访问的值
Item  获取或设置与指定键相关联的值
Keys  获取包含Hashtable中键的ICollection
SyncRoot  获取可用于同步Hashtable访问的对象
Value  获取包含Hashtable中值的ICollection

Hashtable 元素的添加
Add(Object key,Object value)

Hashtable 元素的删除
Clear() 移除所有的元素
Remove(Object key) 移除带有指定键的元素

Hashtable的遍历
            Hashtable ht = new Hashtable();
            ht.Add("id", "111");
            ht.Add("name", "tg");
            foreach (DictionaryEntry dicEntry in ht)
            {
                Console.WriteLine(dicEntry.Key+"   "+dicEntry.Value);
            }
            Console.ReadLine();

Hashtable元素的查找
a.Contains(Object key) 和ContainsKey(Object key)  确定Hashtable中是否包含特定键
b.ContainsValue(Object value)  确定Hashtable中是否包含特定值









































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiegenZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值