Linq和ListView并包含

时间:2012-04-17 00:58:07

标签: c# linq

我有一个表'Assets'和一个填充了Categories的'ListView'(assetCategoriesListView)。

我正在尝试选择具有类别选择的所有资产:

Assets myAsset = dbLinqManager.db.Assets.Where(a => assetCategoriesListView.CheckedIndices.Contains(a.Category)).First();

但似乎无法使用Contains。有谁知道解决方案?

1 个答案:

答案 0 :(得分:1)

你陷入了时间不合时宜的境地。 ListView类的日期来自.NET 1.0,即泛型可用之前的黑暗日子。 CheckedIndices属性的类型为ListView.CheckedIndexCollection,它只实现IEnumerable,而不是IEnumerable<>。这就是Contains()不起作用的原因。

您可以使用Cast()扩展方法正常修复它。但CheckedIndices包含整数,而不是对象。 CheckedItems包含ListViewItems。您计划如何将它们映射到“资产”并不清楚。专注于将数据与视图分开。