我有一个表“资产”和一个填充了类别的“列表视图”(assetCategoriesListView)。
我正在尝试使用类别选择来选择所有资产:
Assets myAsset = dbLinqManager.db.Assets.Where(a => assetCategoriesListView.CheckedIndices.Contains(a.Category)).First();
但似乎包含不能使用。有谁知道解决方案?
你陷入了时代错误。ListView 类可以追溯到 .NET 1.0,这是泛型可用之前的黑暗日子。CheckedIndices 属性属于 ListView.CheckedIndexCollection 类型,它只实现 IEnumerable,而不是 IEnumerable<>。这就是 Contains() 不起作用的原因。
您通常可以使用 Cast() 扩展方法来修复它。但是 CheckedIndices 包含整数,而不是对象。CheckedItems 包含 ListViewItems。尚不清楚您计划如何将它们映射到“资产”。专注于将数据与视图分开。