ILookup<key, value>接口与IDictionary<key, value>接口有何不同?

我不明白ILookup接口是做什么用的.

推荐答案

ILookup个条目可以包含每个键的多个项目-每个键都映射到一个IEnumerable<TElement>.

正如注释中所暗示的,ANILookup是不可变的,而您可以更新ANIDictionary中的值(它公开了一个Add()方法和一个允许获取and个设置值的索引器).

总而言之,它们的用例非常不同-当您需要具有固定且不会(和不能)更改的值的1:N映射时,可以使用查找.另一方面,字典提供键值对的mutable个1:1映射,因此可以更新以添加或删除值.

.net相关问答推荐

ZstdNet库的问题:Src大小不正确,异常

节省用户在整个应用程序中使用的Flutter

如何在选项卡中 Select Winforms NumericUpDown 中的所有文本?

为什么 .net 对字符串使用 UTF16 编码,但默认使用 UTF-8 来保存文件?

为什么我得到 411 Length required 错误?

LINQ:确定两个序列是否包含完全相同的元素

如何在 EF 代码优先中禁用链接表的级联删除?

如何在 C# 4.0 中使任务进入睡眠状态(或延迟)?

从 Web.Config 中的邮箱友好显示名称存储 Smtp

将双精度转换为带有 N 个小数的字符串,点作为小数分隔符,并且没有千位分隔符

如何遍历字典并更改值?

如何将枚举值序列化为 int?

.NET 中是否有可序列化的通用键/值对类?

解密 .NET clr20r3 异常参数 P1..P10

接口属性的 XML 序列化

DataContractSerializer vs XmlSerializer:每个序列化器的优缺点

C# 应用程序中的全局键盘捕获

找不到 System.Windows.Media 命名空间?

可以从 C# 调用 C++ 代码吗?

浮动与双重性能