Как я могу преобразовать IEnumerable <T> в список <T> в C #?

Я использую LINQ для запроса универсального словаря, а затем использую результат в качестве источника данных для моего ListView (WebForms).

Упрощенный код:

Dictionary<Guid, Record> dict = GetAllRecords();
myListView.DataSource = dict.Values.Where(rec => rec.Name == "foo");
myListView.DataBind();

Я думал, что это будет работать, но на самом деле это бросаетSystem.InvalidOperationException:

ListView с идентификатором «myListView» должен иметь источник данных, который либо реализует ICollection, либо может выполнять разбиение на страницы источника данных, если AllowPaging имеет значение true.

Чтобы заставить его работать, мне пришлось прибегнуть к следующему:

Dictionary<Guid, Record> dict = GetAllRecords();
List<Record> searchResults = new List<Record>();

var matches = dict.Values.Where(rec => rec.Name == "foo");
foreach (Record rec in matches)
    searchResults.Add(rec);

myListView.DataSource = searchResults;
myListView.DataBind();

Есть ли маленькая ошибка в первом примере, чтобы она работала?

(Не был уверен, что использовать в качестве названия вопроса для этого, не стесняйтесь редактировать что-то более подходящее)

Ответы на вопрос(1)

Ваш ответ на вопрос