gpt4 book ai didi

c# - c#中list<>和dictionary<>有什么区别

转载 作者:可可西里 更新时间:2023-11-01 03:03:43 25 4
gpt4 key购买 nike

我对c#中的列表和字典有一个奇怪的疑问

在列表中,我们使用以下方法将项目添加到列表

using System.Collections.Generic;

class Program
{
static void Main()
{
List<int> list = new List<int>();
list.Add(2);
list.Add(3);
list.Add(5);
list.Add(7);
}
}

在字典中我们添加这样的项目......

using System;
using System.Collections.Generic;

class Program
{
static void Main()
{
Dictionary<string, int> d = new Dictionary<string, int>();
d.Add("cat", 2);
d.Add("dog", 1);
d.Add("llama", 0);
d.Add("iguana", -1);
}
}

我不知道到底有什么区别,但在字典中我们添加项目,如(键,值)对,而在列表中我们只添加项目而不指定任何键..

谁能澄清一下?

最佳答案

IDictionary用于键->值映射,ICollection用于相似对象的集合。

ICollection是类似对象集合的接口(interface):表单上的控件、列表中的元素、XML 标记中的属性等等。从 .NET 2.0 开始,有一个通用版本,因此您可以将整数集合称为 ICollection<int>。 .

IDictionary 是一个接口(interface),用于将一种类型的对象或值映射到另一种类型的对象或值。它像一本真正的字典或电话簿一样工作:你在脑海中有一个“键”,比如一个人的名字,当你查找它时,你会得到一些由该键标识的信息,如地址或电话号码。每个键只能列出一次,但仍然允许两个不同的键具有相同的值。这在 .NET 2.0 中也是通用的,因此键为字符串且值为整数的字典将是 IDictionary<string,int>。 .

字典实际上是键/值对的集合:您可以使用 IDictionary<int,string>作为ICollection<KeyValuePair<int,string>> ,并且您可以使用 Keys 和 Values 属性将键和值作为单独的集合进行访问。

两者都是 ICollectionIDictionary是无序的,这意味着尽管您可以使用 CopyTo 按某种顺序检索元素方法或 foreach 循环,该顺序没有特殊含义,并且可能会无缘无故地更改。这是 ICollection 之间的主要区别和 IList : 列表让您可以将项目放在特定位置,就像数组一样,它们会一直留在那里直到您移动它们。

关于c# - c#中list<>和dictionary<>有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com