留待项目参考:(个人收集)
共同点:
通俗一点来讲就是广义的数组,C#里面称之为集合。不同于一般的狭义的数组,它们可以存放任意类型的东西,在申明或者赋值的时候指定。比如你写了一个类
Cake,然后想有一个结构来存放很多Cake的实例,那就可以用他们。
cakes=new List<Cake>();
food=new ArrayList();
注意这里没有指定它装的是什么类型的元素,所以可以随便装咯~
当然,好处不能全让你占完了。在‘取’的时候就要麻烦一点了
ArrayList里元素默认是
Object类型的,所以需要强制转换一下。
Object类型的,所以需要强制转换一下。
再来说IList和List的区别:
我的理解是,IList是一个借口,而List是一个确定的类。
接口,当然就需要你去实现它的函数咯,如果你想这些函数有自己的特色,那么就自己写一个类去实现吧!
然后声明的时候:IList<类型>
kk=new 你实现的类名<类型>();
kk=new 你实现的类名<类型>();
当然你可以写成:IList<类型>
kk=new List<类型>();
kk=new List<类型>();
相当于List实现了IList (事实上C#
API中是这样定义的)
API中是这样定义的)
如果你写成 List<类型>
kk=new List<类型>();
kk=new List<类型>();
那就意味着你的代码,那些操作List的函数不能有丝毫改变,你得按规定办事。写好是什么,你就用什么。
用法:
以上三个集合的用法都很相似,跟Java也很相似
假如有一个 List<Cake>
cakes
cakes
增、删、改、查的方法:
cakes.Add(Cake t);//增 cakes.Remove(int index);//删 cakes.Remove(Cake t);//删 cakes[]=//修改的数据 //查或者改 更多的操作可以参考C# API
Program
void Main(string[]
args)
Stopwatch sw = new
Stopwatch();
sw.Start();
IList<SomeType> list
=
new List<SomeType>();
(int i = 0; i
< 1;
i++)
list.Add(new SomeType(i, "test"));
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
sw.Reset();
sw.Start();
ArrayList al = new
ArrayList();
(int i = 0; i
<1;
i++)
al.Add(new SomeType(i, "test"));
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
Console.ReadLine();
}
}
SomeType
int test_int;
string test_string;
SomeType(int test_int, string
test_string)
=
test_int;
test_string;
}
}
执行结果为:
00:00:00.0005187
00:00:00.0000595
但是当i超过50000条时,大家可以看看执行结果,我在这设置的是1000,0000,其结果为:
Ilist只有
03.8455183
ArrayList 有 20.8369815