【发布时间】:2014-05-21 05:28:53
【问题描述】:
object selectedDataItem;
MyClass.Inventory inventory;
inventory = (MyClass.Inventory) selectedDataItem;
在inventory我们可以看到详情如:
Trace.Writeline(inventory.Name + " " + inventory.Place);
您看到库存有inventory.Name、Inventory.Place 我想将所有属性包装在IEnumerable 或ObservableCollection 中,这样我就可以一次遍历所有库存,而不是通过inventory.Name、inventory.Place 等...
我怎样才能制作库存IEnumerable 以便我可以做这样的事情:
IEnumerable<MyClass.Inventory> enumerable = (IEnumerable<MyClass.Inventory>) inventory;
enumerable = from x in enumerable where x.Name == inventory.Name select x;
现在如果我这样做,错误是
无法将“MyClass.Inventory”类型的对象转换为“System.Collections.Generic.IEnumerable`1[MyClass.Inventory]”类型。
【问题讨论】:
-
'selectedDataItem' 是数组还是单个对象?如果要将单个对象转换为 IEnumerable,则应将 IEnumerable 接口实现为“Inventory”类。
-
MyClass.Inventory没有实现IEnumerable<MyClass.Inventory>。这对我来说毫无意义,你为什么希望将单个项目投射到IEnumerable。
标签: c# casting ienumerable