2013-07-26 3 views
0

Как назначить значение целочисленному массиву IEnumerable в VB.Net?Назначение значения для типа IEnumerable integer

Мне нужно добавить:

dim id as integer=obj.id 

в массив

dim arr As IEnumerable(Of Integer) 
+0

Не уверен, что вы имеете в виду - вы просите добавить это значение к каждому элементу массива? – Deeko

ответ

1

Вы не можете. IEnumerable(Of T) не предоставляет никаких методов или свойств для изменения каких-либо значений в перечислении.

Подумайте, почему вы думаете, что ваша переменная arr должна быть типа IEnumerable.

  • Если вы получаете IEnumerable экземпляр из других, вы можете добавить содержимое этого перечисления в list и затем добавить дополнительные значения в список.
  • С другой стороны, даже если вы хотите объявить arr, как IEnumerable по какой-то причине, обратите внимание, что вам нужно создать экземпляр конкретного класса списка в любом случае, к которому вы можете добавить значения перед тем скрывается все позади интерфейсом IEnumerable для последующего использования только для чтения доступ.
1

Вы не можете. IEnumerable - это интерфейс, он не представляет собой определенный класс.

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)