【发布时间】:2010-09-07 02:21:59
【问题描述】:
我正在使用 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 是数据源分页 真的。
为了让它工作,我不得不采取以下措施:
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();
在第一个示例中是否有一个小问题可以让它发挥作用?
(不知道用什么作为这个问题的标题,请随时编辑为更合适的内容)
【问题讨论】: