为IEnumerable类型的整数赋值

时间:2013-07-26 13:36:03

标签: .net vb.net collections ienumerable

如何在VB.Net中为IEnumerable类型的整数数组赋值?

我需要添加:

dim id as integer=obj.id

到数组

dim arr As IEnumerable(Of Integer)

3 个答案:

答案 0 :(得分:1)

你做不到。 IEnumerable是一个接口,它不代表特定的类。

答案 1 :(得分:1)

你做不到。 IEnumerable(Of T)没有提供任何方法或属性来更改枚举中的任何值。

考虑为什么您认为变量arr必须属于IEnumerable类型。

  • 如果您从其他地方获得IEnumerable个实例,则可以将该枚举的内容添加到list然后将其他值添加到您的列表中。
  • 或者,即使您出于某种原因要将arr声明为IEnumerable,请注意您无论如何都需要实例化一个具体的列表类,您可以在之前添加值 em>隐藏IEnumerable接口后面的所有内容,以便以后进行只读访问。

答案 2 :(得分:1)

IEnumerable是一个界面,您无法初始化它。您必须实例化一个具体类型,例如List,并使用类似IEnumerable的抽象类型保留声明。这样做可以保护集合不受写入操作的影响,但是当您想要执行此操作时,必须将集合强制转换为允许添加,删除值的具体类型。样本:

'get value
Dim id as Integer = obj.id

' create your collection and init it with a concrete type
Dim arr As IEnumerable(Of Integer) = new List(Of Integer)

'add in your collection
CType(arr, List(Of Integer).Add(id)