2016-12-27 2 views
-1

Я хочу оптимизировала этот код:VB.Net - Получение элемента из коллекции без использования цикла

dim mPolNo as new Collection(Of String) 
For Each _olap As clsOLAP in cscOLAPs 
    mPolNo.Add(_olap._p1.PolNo) 
Next 

(Тип данных PolNo струнный)

Я пытался использовал Collection.Select что Я копаю в google.

mPolNo = cscOLAPs.Select(Function(x) x._p1.PolNo.ToString) 

Но я сталкиваюсь ошибку говоря:

Unable to cast object of type 'WhereSelectEnumerableIterator`2[SIPLib.ING.clsOLAP,System.String]' to type 'System.Collections.ObjectModel.Collection`1[System.String]'. 

ответ

0

Where возвращается IEnumerable(Of String).
Для того, чтобы перечислить его Collection(Of String), вам необходимочислить результат Where.

Это может быть сделано с помощью вызова метода .ToList() Extension

cscOLAPs.Select(Function(x) x._p1.PolNo.ToString).ToList() 

ToList() могут быть использованы, поскольку Collection(Of String) реализует IList(Of String) интерфейс.

+0

Спасибо! Мне нужно изменить тип данных mPolNo из Collection (Of String) в List (Of String), чтобы он запускался. –

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