在.NET中存储字符串对、创建对象或使用类的最佳方法是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

语境:

我有一个字段列表,我想与他们存储别名(我正在使用.NET 2.0)例如

所以它基本上是一对字符串:

参考文献,参考文献 社区,社区 POST_CODE,邮政编码

...我想这似乎总是不断创造对象这样的东西,所以我应该创建一个StringDictionary并以这种方式存储值,尽管我不会使用StringDictionary类的任何功能而且我不关心关键值对关联等 - 我只想保留一对字符串。

提问于
用户回答回答于

Dictionary<string, string>如果“字段名称”是唯一的,则可以使用通用名称。

否则,如果不介意重复键,则可以使用Lookup类。

我不会太担心你是否使用这些类的全部功能。我认为更重要的问题应该是编写简单易读的代码。

用户回答回答于

.NET的“pair”泛型类是Tuple。你会像这样使用它:

var strings=new List<Tuple<string, string>>();
strings.Add(Tuple.Create("REFERENCE", "Ref"));

如果最左边的字符串是唯一的(即一个关键字),字典是一个完全可以接受的替代品。否则你会得到错误。

至于使用内建集合还是创建实际对象会更好一些,取决于需求(您以后会添加更多列吗?您无法使用字典方法来完成此操作),使用它的频率如何(如果它是一个核心类型,你应该为它创建一个领域模型)等等。

至于没有使用任何字典内置的功能,这是不正确的:你正在使用其二进制搜索算法和内部树结构快速查找。一个Tuple或者你自己的类型列表最有可能不会有这个,它会恢复到线性搜索。

扫码关注云+社区