c# 集合类ArrayList[2]

2009年1月20日星期二

c# 集合类ArrayList[2]

转自http://www.cnblogs.com/nevernet/archive/2009/01/08/1371856.html

3.List ,这个我想才是我们最常用的。
官方参考地址:http://msdn.microsoft.com/zh-cn/library/6sh2ey19(VS.80).aspx

这个其实就是泛型结合数组的例子。

Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CSharp
{
public class TestList
{
//默认构造函数
public TestList()
{
//声明语法,换句话说就是:定义objAppleList - 集合变量的语法。
List objAppleList = new List();

//定义3个Apple类的实例(也叫对象)
Apple objApple1 = new Apple();
objApple1.Color = "red";
objApple1.Weight = 10;

Apple objApple2 = new Apple();
objApple2.Color = "green";
objApple2.Weight = 12;

Apple objApple3 = new Apple();
objApple3.Color = "black";
objApple3.Weight = 8;

//把3个Apple类的实例 干到 objAppleList里面去。

objAppleList.Add(objApple1);
objAppleList.Add(objApple2);
objAppleList.Add(objApple3);

//遍历objAppleList这个集合.
foreach (Apple o in objAppleList)
{
Console.WriteLine("Color is {0},Weight is {1}", o.Color, o.Weight);
}

//总的个数:
Console.WriteLine("objAppleList的总个数是:{0}", objAppleList.Count);

Console.ReadLine();
}
}

public class Apple
{
//定义字段
private string _color = "";
private decimal _weight = 0;

//定义跟字段对应的属性
public string Color
{
get { return _color; }
set { _color = value; } //这里的value是C#关键字。表示外面传入的值.
}

public decimal Weight
{
get { return _weight; }
set { _weight = value; }
}
}
}



在这里:List objAppleList = new List();,其实我们用数组也可以,如:Apple[] objAappArray = new Apple[3]; 但是数组的限制就是固定了大小。不能动态增加。

这里为什么不用ArrayList?按道理,用ArrayList也可以,如:


Code
ArrayList obAppleArrayList = new ArrayList();
obAppleArrayList.Add(objApple1);
obAppleArrayList.Add(objApple2);
obAppleArrayList.Add(objApple2);


我们不用的ArrayList的目的是保证类型安全。因为这个时候,你还可以obAppleArrayList.Add("string");,obAppleArrayList.Add("heihei");,这样obAppleArrayList的元素就不是单纯的Apple类了。

我们最常用的也是List.


4.Hashtable,
官方地址:http://msdn.microsoft.com/zh-cn/library/system.collections.hashtable(VS.80).aspx

实例:


Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace CSharp
{
public class TestHashtable
{
public TestHashtable()
{
Hashtable objHashtable = new Hashtable();

//需要注意的是:这里的add有点不同于ArrayList,这里需要指定两个值,一个是key,一个value.
//而且必须都是Object
objHashtable.Add("Key", "Value");
objHashtable.Add(1, 2);
objHashtable.Add(2.1, 3.2);

//获取所有的key
ICollection keys = objHashtable.Keys;
foreach (object key in keys)
{
Console.WriteLine("Key is {0},Values is {1}",key,objHashtable[key]);
}

Console.WriteLine();

//换一种遍历方式:
foreach (DictionaryEntry de in objHashtable )
{
Console.WriteLine("Key is {0},Values is {1}", de.Key, de.Value);
}

Console.ReadLine();
}
}
}

0 评论:

发表评论