1.使用相对较多的属性和方法:
1),count属性和capacity属性
Count属性是目前ArrayList包含的元素的数量,这个属性是只读的。
Capacity属性是目前ArrayList能够包含的最大数量,可以手动的设置这个属性,但是当设置为小于Count值的时候会引发一个异常
实例1:随机抽取数据,并且是不重复的偶数
ArrayList array = new ArrayList();
while (true)
{
Random random = new Random();
int numb = random.Next(1, 101);
if (numb % 2 == 0 && !array.Contains(numb))
{
array.Add(numb);
}
if (array.Count==10)
{
break;
}
}
foreach (var item in array)
{
Console.Write(item+",");
}
Console.ReadKey();
2),Add、AddRange、Remove、RemoveAt、RemoveRange、Insert、InsertRange、Clear、Contains(查询数据是否存在数组中)
Add、AddRange、Remove、RemoveAt、RemoveRange、这些方法的使用基本相同
3),ToArray将数据copy到另一个数组中
//将两个数组合并并将重复的除去
ArrayList array1 = new ArrayList() { "a","b","c","d","e"};
ArrayList array2 = new ArrayList() { "d","e","f","g","h"};
array1.AddRange(array2);
//var result = array1.Cast<string>().Distinct().ToArray();
var result = array1.Cast<string>().Distinct().ToArray();
//Cast<>()将类型强制转换,Distinct()去除重复数据
//Console.Write(result);
for (int i = 0; i < result.Length; i++)
{
Console.Write(result[i]);
}
Console.ReadKey();
2.ArrayList与数组转换
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);
Int32[] values = new Int32[List.Count];
List.CopyTo(values);
foreach (var item in List)
{
Console.Write(item);
}
Console.ReadKey();
3.List<T>泛型,是ArrayList的升级版,它将插入的数据类型固定了
4.Dictionary<>,Hashtable,都是使用的键值对
Dictionary实例:
#region 英汉翻译
string[] filestr = File.ReadAllLines(@"E:\优快云\20140311内存管理\英汉词典TXT格式.txt");
string[] str = null;
Dictionary<string, string> dic = new Dictionary<string, string>();
for (int i = 0; i < filestr.Length; i++)
{
str = filestr[i].Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries);
//dic.Add(str[0],str[1]);
dic.Add(str[0], str[1]);
}
string wordstr = this.txbEnglish.Text;
if (dic.Keys.Contains(wordstr))
{
this.txbChinese.Text = dic[wordstr];
}
else { label1.Text="不存在此单词"; }
#endregion