¿Cómo puedo convertir IEnumerable <T> a List <T> en C #?

Estoy usando LINQ para consultar un diccionario genérico y luego uso el resultado como fuente de datos para mi ListView (WebForms).

Código simplificado

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

Pensé que funcionaría, pero de hecho arroja unSystem.InvalidOperationException:

ListView con id 'myListView' debe tener un origen de datos que implemente ICollection o que pueda realizar la paginación del origen de datos si AllowPaging es verdadero.

Para que funcione, he tenido que recurrir a lo siguiente:

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();

¿Hay un pequeño problema en el primer ejemplo para que funcione?

(No estaba seguro de qué usar como título de la pregunta para este, no dude en editarlo en algo más apropiado)

Respuestas a la pregunta(5)

Su respuesta a la pregunta