C#中的Array和ArrayList
来源:互联网 发布:压缩文件加密破解软件 编辑:程序博客网 时间:2024/06/01 07:42
int[] nums = { 5, 4, 6, 3, 14, 9, 8, 17, 1, 24, -1, 0 };
Console.Write("排序之前order: ");
foreach (int i in nums)
Console.Write(i + " ");Console.WriteLine();
int before = Array.IndexOf(nums, 14);
Console.WriteLine("before sort 14 index is " + before);
//排序之前在数组中的序号
Array.Sort(nums);//静态方法对数组进行排序
Console.Write("排序之后order: ");
foreach (int i in nums)Console.Write(i + " ");
//输出数组int index = Array.BinarySearch(nums, 14);
//查找的序号Console.WriteLine("the index of is is" + index);
Console.WriteLine();string[] strArray = new string[]
{ "75.3", "25.999", "105.25" };
//类型转换double[] doubleArray = Array.ConvertAll
<string, double>(strArray, Convert.ToDouble);
//实现类型的转换
Console.Write("Converted to doubles: ");
Array.ForEach<double>(doubleArray, delegate(double x)
{ Console.Write(x + " "); });//委托事件
程序结果截图
二、ArrayList
Array是个静态的数组,一旦数组大小在初始化过程中确定了在后面就不能修改了,也不能对数组中的元素进行增加和删除.这不是很灵活,为此C#提供了ArrayList用来处理动态的数组.,
ArrayList在创建以后可以根据实际需要进行元素的增删.这个是非常好用了..我们先看下ArrayList的构造函数
ArrayList al = new ArrayList();
再来看一个简单的例子:
ArrayList al = new ArrayList();
Console.WriteLine
("Initial number of elements: " + al.Count);
Console.WriteLine("Adding 6 elements");
// Add elements to the array list
al.Add('C');
al.Add('A');
al.Add('E');
al.Add('B');
al.Add('D');
al.Add('F');
al.Remove('A');//删除一个元素
Console.WriteLine(al.Count);
al.Add('a');//增加一个元素
Console.WriteLine(al.Count);
al[0] = 'X';//修改数组元素
al[1] = 'Y';
al[2] = 'Z';
//删除一个元素后数量变为5,增加一个后元素的数量为6
那么现在我们再来建立一个数字的ArrayList来学习下它的方法;
ArrayList al = new ArrayList();
// Add elements to the array list
al.Add(155); al.Add(413);
al.Add(-41); al.Add(818);
al.Add(31); al.Add(191);
Console.Write("Original contents: ");
foreach(int i in al)
Console.Write(i + " ");
Console.WriteLine("\n");
// Sort 排序
al.Sort();
Console.Write("Contents after sorting: ");
foreach(int i in al)
Console.Write(i + " ");
Console.WriteLine("\n");
Console.WriteLine("Index of 413 is " +
al.BinarySearch(413));
上图是输出的结果.
三. ArrayList相关方法的学习
利用enumerator来访问数组:
ArrayList list = new ArrayList(1);
for (int i = 0; i < 10; i++)
list.Add(i);
IEnumerator etr = list.GetEnumerator();//枚举
while (etr.MoveNext())
Console.Write(etr.Current + " ");
运行结果:0 1 2 3 4 5 6 7 8 9
对了,要想在C#中利用ArrayList必须在系统命名空间中加入一个引用,否则会出现错误的。using System.Collections;
下面看一些动态数组的常用方法:
ArrayList list = new ArrayList(5);
//构造一个动态数组
// list.Clear();//清楚数组中所有的元素
Console.WriteLine();
Console.WriteLine("there are {0} elements in the list", list.Count);
ArrayList shuzu = new ArrayList(5);
shuzu.Add("仙剑一");
shuzu.Add("亮剑");
shuzu.Add("bianceng.");
shuzu.Add("国家宝藏");
shuzu.Add("陆小凤");
for (int x = 0; x <= shuzu.Count - 1; x++)
Console.WriteLine(shuzu[x]);
Console.WriteLine("now reverse it\n");
shuzu.Reverse();
Console.WriteLine("after reverser\n");
Console.WriteLine();
for (int x = 0; x <= shuzu.Count - 1; x++)
Console.WriteLine(shuzu[x]);
运行结果:
现在比较下array 和arraylist:Array 提供 ArrayList 所不具有的某些灵活性。例如:
可以设置 Array 的下限,但 ArrayList 的下限始终为零。
Array 可以具有多个维度,而 ArrayList 始终只是一维的;特定类型(不包括 Object)的 Array 的性能比 ArrayList 好,这是因为 ArrayList 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱。
Array 位于 System 命名空间中;ArrayList 位于 System. Collections 命名空间中
至于ArrayList从Object类继承下来的父类方法我在这里就不多介绍了,
那都是些基本的方法。下面看些ArrayList使用的方法。
Console.WriteLine();
for (int x = 0; x <= shuzu.Count - 1; x++)
Console.WriteLine(shuzu[x]);
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
Console.WriteLine("now add a new elements ");
shuzu.Add("new element");//增加一个元素
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
shuzu.Remove("亮剑");//删除特点元素
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
shuzu.RemoveAt(2);//删除指定位置的元素
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
shuzu.Insert(1, "系统级");//在数组的制定位置插入一个元素
Console.WriteLine("there are {0} elements in the list", shuzu.Count);
int countElement = shuzu.Count;
Console.WriteLine(shuzu.GetType());//输出数组的类型
int index = shuzu.IndexOf("系统级");//获取某一元素的索引号
Console.WriteLine();
ArrayList anothe = new ArrayList(shuzu);//创建一个数组
for (int b = 0; b < anothe.Count; b++)
Console.WriteLine(anothe[b]);
Console.WriteLine(shuzu.Contains("国家宝藏"));//判定数组中是否存在某一元素
Console.WriteLine(shuzu.LastIndexOf("国家宝藏"));
list.Add("B");
list.Add("G");
list.Add("J");
list.Add("S");
list.Add("M");
string[] array1 = new string[list.Count];
//创建一个i和shuzu元素个数大小一样大的字符串数组
list.CopyTo(array1, 0);
//将shuzu中从第一个元素开始以后的元素复制到array
object[] array2 = list.ToArray();//利用这个方法创建数组
Console.WriteLine("Array 1:");
foreach (string s in array2)
{
Console.Write("{0}", s);
}
Console.WriteLine();
foreach (string s in array1)
{
Console.Write("{0}", s);
}
Console.WriteLine();
for (int i = 0; i < list.Count; i++)
Console.Write(list[i]);
以上程序运行的结果是:
- C#中的Array和ArrayList
- C# Array和ArrayList区别 C# Array和ArrayList区别
- C# Array和ArrayList区别
- C# Array和ArrayList区别
- C# Array和ArrayList区别
- C# Array和ArrayList区别
- C# Array和ArrayList区别
- C#中Array和ArrayList的区别
- Array && ArrayList C#
- Java中的Array&ArrayList
- c#中Dictionary、ArrayList、Hashtable和数组 Array 的区别
- c#中Dictionary、ArrayList、Hashtable和数组 Array
- c#中Dictionary、ArrayList、Hashtable和数组 Array 的区别
- C# Array和ArrayList区别及相互转化方法
- C#中Dictionary、ArrayList、Hashtable和Array的区别
- C#中Dictionary、ArrayList、Hashtable和Array的区别
- C#中Dictionary、ArrayList、Hashtable和Array的区别
- C#中Array和ArrayList用法及转换
- C#中的Array-数组
- zoj 1095 || hdu 1058 Humble Numbers( DP || 乱搞)
- iPhone多线程
- 博客收集
- APUE 8.3 fork function
- C#中的Array和ArrayList
- 最短路径
- ubuntu设置静态IP的方法
- Directx11与PhysX的结合
- ARM9中断与PC
- Struts2学习笔记02------Action名称的搜索顺序和Action配置的各项默认值
- INCLUDE & COPY in COBOL
- android的UI设计原则
- 2011年网上购书清单