【问题标题】:Multidimensional generic collection with position indexer具有位置索引器的多维通用集合
【发布时间】:2014-02-21 05:00:39
【问题描述】:

不确定标题的措辞是否正确,但基本上我正在尝试加载给定目录中文本文件的所有文件名,然后将每个文件中的文本行加载到一个集合中。

我希望做这样的事情:

Dictionary<string, List<string>> db = new Dictionary<string, List<string>>;
db.Add("c:\text1.txt", new List<string>(new string[]{"line1","line2","line3"}));

然后使用db[0]访问它

是否有任何类型的收藏可以做到这一点,或者你们都可以推荐一种不同的方式吗?

【问题讨论】:

  • 请不要在标题中包含语言标签,除非没有它就没有意义。标记用于此目的。

标签: c# .net generics collections .net-4.5


【解决方案1】:

显然,由于字典默认是无序的(项目存储在桶中,这取决于密钥哈希码,项目的顺序无关紧要),您有两种选择:

  • 使用有序版本的字典类集合(参见OrderedDictionaryKeyedCollection 和这个question);
  • 使用任何有序集合,例如List&lt;Tuple&lt;string, List&lt;string&gt;&gt;&gt;,但这不允许按键搜索。

【讨论】:

  • @blizz: Tuple&lt;...&gt; 这里只是一个用于包装文件名及其行的示例容器。如果Tuple&lt;...&gt; 不符合您的需求,您也可以使用自己的课程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 2021-11-10
相关资源
最近更新 更多