关于c# 泛型List集合对象的用法及相关操作
2008-10-25 22:58
531 查看
今晚终于静下心来下写自己的BLOG
关于.net framework 2.0推出“泛型”,学习体会了下当中LIST<T>基本的用法及原理
由于之前的版本中,集合
CLASS A,CLASS B
//实例化A,B类对象
ArrayList list=new ArrayList();
//此参数为object value
//编译器些时,并不为检查object类型
list.add(A);list.add(B);
//当去遍历list集合对象时
foreach(A a in list)
{
console.Write((A)a);
}
运行时,程序报错,原因在于遍历list集合时转型中,有不是A对象的实例类型B
在2.0中已经解决些问题,就是“泛型”用法
CLASS A,CLASS B
//实例化A,B类对象
List<A> mylist=new List<A>();
mylist.add(a);mylist.add(b);
//此时统译时会报错,因为在声名时List<A>已经约束其集合的类型,也就是参数class A的实例
//下面我们来进行集的几中基本操作
//Comparable 集合中对象的比较排序
//如果学习之前学过C++的操作符赋重载,理解这个知识点并不难
//集合中对象比较本质是比较对象中成员属性变量的值
//编译器本身是不知道怎么样去比较的,而是需要我们自己编写代码来告诉编译器比较的规则
//在C# 中为一个类定义这样的比较规则,必须继承一个IComparable(比较)的接口,来实现些功能
//因为在此IComparable接口中
public interface IComparable
{
//些方法需要自己实现,就是比较的规则
int CompareTo(Object obj)
}
例如:
Class A:IComparable
{
//成员属性
private string _name;
public int CompareTo(object obj)
{
//判断比较对象是否是Class A对象
if(!obj is A)
{
throw new Exception("只能与Class A对象比较");
}
//将参数转换为Class A对象
A a=obj as A;
return this._name.CompareTo(a._Name);
}
}
//当一个类实现上面代码功能时
Class A a1,Class A a2;
List<A> mylist=new List<A>();
mylist.add(a1);mylist.add(a2);
//进行集合排序时
mylist.sort()
foreach(A a in mylist)
{
//此时显示的结果,为按字母升序排列
console.Write(a.name);
}
如果类中,其它属性需要比较排序,既然如此泡制既可.
2008/5/18晚
关于.net framework 2.0推出“泛型”,学习体会了下当中LIST<T>基本的用法及原理
由于之前的版本中,集合
CLASS A,CLASS B
//实例化A,B类对象
ArrayList list=new ArrayList();
//此参数为object value
//编译器些时,并不为检查object类型
list.add(A);list.add(B);
//当去遍历list集合对象时
foreach(A a in list)
{
console.Write((A)a);
}
运行时,程序报错,原因在于遍历list集合时转型中,有不是A对象的实例类型B
在2.0中已经解决些问题,就是“泛型”用法
CLASS A,CLASS B
//实例化A,B类对象
List<A> mylist=new List<A>();
mylist.add(a);mylist.add(b);
//此时统译时会报错,因为在声名时List<A>已经约束其集合的类型,也就是参数class A的实例
//下面我们来进行集的几中基本操作
//Comparable 集合中对象的比较排序
//如果学习之前学过C++的操作符赋重载,理解这个知识点并不难
//集合中对象比较本质是比较对象中成员属性变量的值
//编译器本身是不知道怎么样去比较的,而是需要我们自己编写代码来告诉编译器比较的规则
//在C# 中为一个类定义这样的比较规则,必须继承一个IComparable(比较)的接口,来实现些功能
//因为在此IComparable接口中
public interface IComparable
{
//些方法需要自己实现,就是比较的规则
int CompareTo(Object obj)
}
例如:
Class A:IComparable
{
//成员属性
private string _name;
public int CompareTo(object obj)
{
//判断比较对象是否是Class A对象
if(!obj is A)
{
throw new Exception("只能与Class A对象比较");
}
//将参数转换为Class A对象
A a=obj as A;
return this._name.CompareTo(a._Name);
}
}
//当一个类实现上面代码功能时
Class A a1,Class A a2;
List<A> mylist=new List<A>();
mylist.add(a1);mylist.add(a2);
//进行集合排序时
mylist.sort()
foreach(A a in mylist)
{
//此时显示的结果,为按字母升序排列
console.Write(a.name);
}
如果类中,其它属性需要比较排序,既然如此泡制既可.
2008/5/18晚
相关文章推荐
- 关于c# 泛型List集合对象的用法及相关操作
- C#中对List<Object>泛型集合,根据对象的某一属性进行升序排序
- C# List泛型集合中的GroupBy<>用法
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合
- C# List泛型集合中的GroupBy<>用法
- 关于Linq对DataTable和List各自的两个集合筛选的相关操作技巧
- C# List泛型集合中的GroupBy<>用法
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- C#中关于在List集合类中使用泛型的例子
- C#之 List <>泛型集合
- 关于对Map、List等集合操作抛出ConcurrentModificationException 异常问题
- 关于C#的垃圾回收以及List动态数组的用法。
- UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
- C#字符串操作 取文本左边 取文本右边 取文本中间 取文本中间到List集合 指定文本倒序
- C#中List或其它集合对象排序方法的一点理解
- C#将58同城商圈接口返回Json字符串反序列化成List对象类集合绑定DropdownList
- C# 泛型List的定义、作用、用法
- C#中泛型List的定义与用法以及常用函数