2013-04-24 2 views
7

Я пытаюсь вернуть эту коллекцию в функции:конвертировать EnumerableRowCollection <string> в список <string>

List<string> codes = (from q in Data.AsEnumerable() select q.Field<string>("START")); 
return codes; 

Это проливает ошибка:

Cannot implicitly convert type 'System.Data.EnumerableRowCollection<string>' to 'System.Collections.Generic.List<string>' 

Какой самый лучший способ вернуть такую ​​коллекцию?

+1

Зачем ставить под вопрос мой вопрос? – Meidi

ответ

16

С EnumerableRowCollection<TRow> реализует IEnumerable<T> вы можете просто добавить ToList() в конце:

using System.Linq; 

List<string> bankCodes = (from q in QueueData.AsEnumerable() select q.Field<string>("START")).ToList(); 

или альтернативно

List<string> bankCodes = QueueData.AsEnumerable() 
    .Select(r => r.Field<string>("START")) 
    .ToList(); 
+1

add .ToList() выбрасывает это исключение: – Meidi

+0

'System.Data.EnumerableRowCollection ' не содержит определения для 'ToList' и никакого метода расширения 'ToList', принимающего первый аргумент типа 'System.Data.EnumerableRowCollection ' can (вам не хватает директивы using или ссылки на сборку?) – Meidi

+7

@Meidi - Вам нужно добавить директиву 'using System.Linq;' в начало вашего файла. – Lee

5

Вы должны использовать .ToList() для преобразования его в список, чтобы попробовать что-то вроде этого.

List<string> bankCodes = (from q in QueueData.AsEnumerable() select q.Field<string>("START")).ToList(); 
Смежные вопросы