gpt4 book ai didi

c# - IEnumerable> vs IDictionary

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:17 25 4
gpt4 key购买 nike

我有一个问题。我最近更换了我的一个 IDictionaryIEnumerable<KeyValuePair> .这是因为不应修改此项目集合。正如我所看到的,它们是相同的,但 IEnumerable 没有实现添加、删除等,这对我和我使用这个集合的领域来说非常完美。

public IDictionary<string, UserInformation> MyItems;
public IEnumerable<KeyValuePair<string, UserInformation>> MyItems;

现在回答我的问题。

  • 如果我不希望收藏成为最明智的方式修改的?
  • 有没有更聪明的方法来做到这一点?
  • 我这样做是不是太蠢了?

我之前找到过类似的帖子,但没有一个真正解释使用什么以及为什么。

最佳答案

最重要的问题是 IDictionary旨在用于高效查找。如果您真的只想表示一对序列,那么您的方法没问题 - 但我不会使用 KeyValuePair除非这种关系在语义上确实是一个键/值...在这种情况下我真的只会使用字典。

当然,您不必公开字典 - 您可以公开获取键值的方法(也许还公开一系列键和一系列值)。

或者您可以创建 IDictionary<,> 的只读实现当然 - 有一个示例实现 in this answer .

关于c# - IEnumerable<KeyValuePair<string, UserInformation>> vs IDictionary<string,UserInformation>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12037437/

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