撇开性能来说,C#中的List<T>比ArrayList和Hashtable难用多了。
List<String> strlist = new List<String>();
strlist.Add("WPF");
strlist.Add("WCF");
strlist.Add("WF");
strlist.Add("Author");
strlist.Add("WinFx");
strlist.Add("WinFx");
strlist.Add("Linq");
//Predicate 是对方法的委托,如果传递给它的对象与委托中定义的条件匹配,则该方法返回 true。当前 List 的元素被逐个传递给 Predicate 委托,在找到匹配项时停止处理。此方法执行线性搜索;
Predicate<String> FindValues = delegate(String list)
{
return list.Equals("WinFx") ? true : false;
};
Response.Write("Result: ---FindIndex--- " + strlist.FindIndex(FindValues) + " ----------<br />");
Response.Write("Result: ---Exists---- " + strlist.Exists(FindValues) + " ----------<br />");
//查找全部
List<String> lists = strlist.FindAll(FindValues);
foreach (string str in lists)
{
Response.Write("Result: ---FindAll----- " + str + " ----------<br />");
}
strlist.Add("WPF");
strlist.Add("WCF");
strlist.Add("WF");
strlist.Add("Author");
strlist.Add("WinFx");
strlist.Add("WinFx");
strlist.Add("Linq");
//Predicate 是对方法的委托,如果传递给它的对象与委托中定义的条件匹配,则该方法返回 true。当前 List 的元素被逐个传递给 Predicate 委托,在找到匹配项时停止处理。此方法执行线性搜索;
Predicate<String> FindValues = delegate(String list)
{
return list.Equals("WinFx") ? true : false;
};
Response.Write("Result: ---FindIndex--- " + strlist.FindIndex(FindValues) + " ----------<br />");
Response.Write("Result: ---Exists---- " + strlist.Exists(FindValues) + " ----------<br />");
//查找全部
List<String> lists = strlist.FindAll(FindValues);
foreach (string str in lists)
{
Response.Write("Result: ---FindAll----- " + str + " ----------<br />");
}
protected void Page_Load(object sender, EventArgs e)
{
//创建Person对象
Person p1 = new Person("张三", 30);
Person p2 = new Person("李四", 20);
Person p3 = new Person("王五", 50);
//创建类型为Person的对象集合
List<Person> persons = new List<Person>();
//将Person对象放入集合
persons.Add(p1);
persons.Add(p2);
persons.Add(p3);
//输出第2个人的姓名
Response.Write(persons[1].Name);
}
public class Person
{
private string _name; //姓名
private int _age; //年龄
//创建Person对象
public Person(string Name, int Age)
{
this._name= Name;
this._age = Age;
}
//姓名
public string Name
{
get { return _name; }
}
//年龄
public int Age
{
get { return _age; }
}
}
{
//创建Person对象
Person p1 = new Person("张三", 30);
Person p2 = new Person("李四", 20);
Person p3 = new Person("王五", 50);
//创建类型为Person的对象集合
List<Person> persons = new List<Person>();
//将Person对象放入集合
persons.Add(p1);
persons.Add(p2);
persons.Add(p3);
//输出第2个人的姓名
Response.Write(persons[1].Name);
}
public class Person
{
private string _name; //姓名
private int _age; //年龄
//创建Person对象
public Person(string Name, int Age)
{
this._name= Name;
this._age = Age;
}
//姓名
public string Name
{
get { return _name; }
}
//年龄
public int Age
{
get { return _age; }
}
}
参照:
http://developer.51cto.com/art/200909/148801.htm
http://blog.chinaunix.net/u1/41814/showart_1093234.html
http://www.cnblogs.com/yjmyzz/archive/2007/12/17/1003754.html