我正在使用 LINQ 查询通用字典,然后将结果用作我的 ListView (WebForms) 的数据源。
简化代码:
Dictionary<Guid, Record> dict = GetAllRecords();
myListView.DataSource = dict.Values.Where(rec => rec.Name == "foo");
myListView.DataBind();
我认为这会起作用,但实际上它会引发System.InvalidOperationException:
id 为“myListView”的 ListView 必须具有实现 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();
第一个示例中是否有一个小问题可以使它起作用?
(不知道该用什么作为这个问题的标题,请随时编辑为更合适的内容)