【问题标题】:Generic Array Index通用数组索引
【发布时间】:2012-11-21 09:50:30
【问题描述】:

C# 是否有一个可由泛型类型索引的数组类型(显然是一种限制为IComparable 或类似的类型)?例如:

public class GenericallyIndexedArray<I,T> where I : struct, IComparable { // ...

顺序很重要。

【问题讨论】:

  • 您在寻找IList&lt;T&gt;吗?
  • @Servy 不,我正在寻找 SortedList。李提供了正确的答案。
  • 我可以告诉你,无论你打算用它做什么,它几乎肯定不是适合这项任务的数据结构。随着数据结构的发展,它的效率特别低。不知道你的情况是不可能说的,但几乎可以肯定有更好的东西。
  • 我的情况如上所述。随意提出替代方案。除非我可以使用 IComparer 作为键,否则该建议无效。
  • 那不是真实的情况。为什么需要结构来包含可比较的对象?为什么需要索引?通常,如果您需要排序索引集合,您可以将项目放入常规数组或列表中并偶尔对其进行排序。如果您需要一个不断变化的排序数据集,您通常可以使用不会被索引的 SortedDictionary(它是一个树形图),但操作效率会更高。

标签: c# arrays indexing


【解决方案1】:

是的,是SortedList&lt;TKey, TValue&gt;

您可以提供IComparer&lt;T&gt; 用于密钥,或者如果密钥类型实现它,则使用默认值。

【讨论】:

  • 我还没有发现SortedList 是适合这项工作的数据结构的情况。
猜你喜欢
  • 2016-01-31
  • 2018-05-02
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多