Wie kann ich IEnumerable <T> in List <T> in C # konvertieren?

Ich verwende LINQ, um ein generisches Wörterbuch abzufragen, und verwende das Ergebnis dann als Datenquelle für meine ListView (WebForms).

Vereinfachter Code:

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

Ich dachte, das würde funktionieren, aber in der Tat wirft es ein System.InvalidOperationException:

ListView mit der ID 'myListView' muss über eine Datenquelle verfügen, die entweder ICollection implementiert oder Datenquellen-Paging ausführen kann, wenn AllowPaging den Wert true hat.

Um es zum Laufen zu bringen, musste ich auf Folgendes zurückgreifen:

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

Ist im ersten Beispiel ein kleines GOTCHA, damit es funktioniert?

(Ich war mir nicht sicher, was ich als Fragentitel für diesen Titel verwenden sollte. Fühlen Sie sich frei, etwas Passenderes zu ändern.)

Antworten auf die Frage(10)

Ihre Antwort auf die Frage