实现IEnumerable的类实例的技术上正确的术语是什么?

时间:2011-07-21 21:48:05

标签: c# .net collections terminology ienumerable

我们将这样的实例称为“集合”吗?一个“可数”?或者是其他东西?我问我的两个主要目标是:

  1. 其他开发人员可以理解,无需解释该类实现IEnumerable
  2. 技术上正确和准确。

10 个答案:

答案 0 :(得分:14)

从技术上讲,我会告知开发人员它实现了IEnumerable。

说出其他任何信息都不太有用。

任何了解IEnumerable的人都会立即了解您班级的能力。任何不这样做的人,无论你怎么说都不会得到它。

答案 1 :(得分:6)

  

“可枚举”?

这是一个被广泛接受的答案;我建议不要将其称为集合,因为这可能意味着该对象实现了ICollectionICollection<T>

答案 2 :(得分:2)

没有,所以我会使用短语“一个可枚举的类型”。

集合包含有限数量的项目。可枚举类型不一定是集合,因为它可以是无限列表。

列表是具有明确订单的集合。

答案 3 :(得分:2)

虽然大多数实现IEnumerable的类都是集合,但没有特定的术语。一个值得注意的例外是String,但它可以看作是一组字符......

答案 4 :(得分:2)

我通常会说“我有这个IEnumerable ......”,这似乎足够在工作和SO。它清楚地表明我正在谈论一个实现IEnumerable的类。

答案 5 :(得分:2)

我同意那些暗示“枚举器可枚举”的内容,但是如果你想要别的东西,“序列”一词也会有效。

答案 6 :(得分:1)

通过“IEnumerable”调用它将是完全合适的。这使得该类非常明显地实现了IEnumerable,并且简洁而精确。

从面向对象的角度来看,这个类是IS-AN IEnumerable,所以这也是合理的。

答案 7 :(得分:1)

ObservableCollection类将其称为“集合”。

    //
    // Summary:
    //     Initializes a new instance of the System.Collections.ObjectModel.ObservableCollection<T>
    //     class that contains elements copied from the specified collection.
    //
    // Parameters:
    //   collection:
    //     The collection from which the elements are copied.
    //
    // Exceptions:
    //   System.ArgumentNullException:
    //     The collection parameter cannot be null.
    public ObservableCollection(IEnumerable<T> collection);

答案 8 :(得分:1)

我建议“一个枚举”。

这在技术上意味着枚举的结果,但通常是如何感知IEnumerable接口。

史蒂夫

答案 9 :(得分:0)

难点在于IEnumerable和“enumerable”这个词不是名词。您说"something is enumerable",而不是"something is an enumerable"。换句话说,可枚举的对象是您对对象所做的事情,而不是对象本身的定义。

MSDN将其描述为:

  

IEnumerable - 公开枚举器,它支持对指定类型的集合进行简单迭代。

准确记录时我会使用:

  

“List&lt; int&gt;是System.Int32值的可枚举集合。”