list<>和dictionary<>在c#中的区别

list<>和dictionary<>在c#中的区别是什么?

List<>和Dictionary<,> - 用于不同目的的完全不同的数据结构,List只是一组项目,Dictionary是一组键值对。 当你有一组复杂的对象并想要快速访问时,字典非常有用,比如说ObjectName / ObjectId,在这种情况下,你创建IDictionary<string, TObject>,其中key是ObjectId,Value将是一个对象本身。 一些差异:

列出项目的持久性顺序,词典不用。
列表允许按索引快速访问。
列出了QuickSort算法内置的快速数据排序支持。
字典允许~O(1)时间复杂度通过键访问项目(值)。

比如,一个坐标系内也可以是一个图像范围内,有N个,现在需要保存每个点的坐标x,y,r,r是其角度,视觉处理交叉点时是有角度的,这里就按3个参数来处理,别纠结。要把这些点用用数组方式来保存就很不清晰,二用LIST或DICTIONARY来储存就一一对应简单清晰很多。
先定义一个CLASS
class MyPoint
{
public double x;
public double y;
public double r;
public MyPoint ( double X, double Y, double R )
{
x = X;
y = Y;
r = R;
}
}
然后可以定义LIST:
List mylist = new List ( );
添加:
mylist.Add ( new MyPoint ( 1.1, 11.11, 111.111 ) );
获取:
double xx = mylist[0].x;

定义字典的方式如下:
Dictionary<int, MyPoint> myDict = new Dictionary<int, MyPoint> ( );
添加:
myDict.Add ( 3, new MyPoint ( 7.7, 8.8, 9.9 ) );
获取:
double yy = myDict[3].y;

总结:
Dictionary<K,V>是一个关联数组或地图。它是一个可以通过任何类型的值索引的容器。
List是一个整数索引数组。它是一个由连续整数索引的容器。
因此,本质上的区别在于容器的索引方式。 不要陷入相信Dictionary<int,T>在语义上等同于List的陷阱。区别在于List的索引是连续的,而Dictionary<int,T>的索引可能存在间隙。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值