2010-11-12 1 views
2

Как я могу добавить объекты ObjectCollection в IList (Of SomeType)? Я попытался с:Добавить элементы из ObjectCollection в IList (Of SomeType)

For Each obj As SomeType In listBox.Items 'ObjectCollection 
    MyObject.ItProperty.Add(obj) 'IList 
Next 

Нет успеха. Спасибо.

+0

Я думаю, что вам не хватает текста. Это заканчивается словами «Я пробовал с:». –

+0

Я изменил это. Извините и благодарю вас. – thom

ответ

1

Если возможно, не унифицированная IList интерфейс будет самый простой подход:

IList list = (IList)MyObject.ItProperty; 
list.Add(obj); 

В противном случае, вам придется:

  • найти соответствующий T (с помощью отражения)
  • разрешить метод Add от IList<T> (с использованием отражения)
  • вызывать Add метод (с помощью отражения)

, что отражение, особенно на воспроизведенных, не приятно.

В качестве альтернативы - если у вас есть 4.0, вы можете попробовать использовать dynamic, но обратите внимание, что это видит только открытый API. Стоит попробовать, хотя (только если IList терпит неудачу):

dynamic list = MyObject.ItProperty; 
list.Add(obj); // let's hope Add isn't an explicit interface implementation 
0

Вы можете добавить некоторые подробности о том, что не удается, и где? Ваш код должен работать.

Если вы получаете исключение "Unable to cast object of type 'XXX' to type 'SomeType'." на строке «For Each obj», то в коллекции listBox.Items есть хотя бы элемент типа «SomeType».

 Смежные вопросы

  • Нет связанных вопросов^_^