无法引用方法 属性
Can't reference a method property
我正在尝试调用函数
NextPrevious((List<Store>)model.Group.ToList(), 3, groupPage.Value, ref next, ref previous);
方法定义为..
private void NextPrevious(List<Store> model, int numFields, int page, ref bool nextRef, ref bool previousRef)
{
...
}
但我收到无法将组转换为商店的错误。
model 是 class 中的一个变量,其中包含 Group 对象列表和更多内容。
群组也是 class 商店的子class。
我只检查方法中的基本 List<>
内容,例如 method.Count
或 method.Skip()
所以如果有更简单的方法可以做到这一点,我洗耳恭听,我我没有调用任何特定的 Store 或 Group 方法。
抱歉,如果我 post 提供的信息太少,如果需要,我可以 post 更多。谢谢!
您不能将不同类型的通用集合分配给彼此! List<Class> = List<Subclass>
因为这些集合的类型不同!
如果您 100% 确定 model.Group 仅包含 Store 类型的元素,您可以执行此操作 model.Group.Select(x => (Store)x).ToList()
或 model.Group.OfType<Store>().ToList()
如果您不确定model.Group.Where(x => x is Store).Select(x => (Store)x).ToList()
让你的 List<Store>
成为 IEnumerable<Store>
。
之所以你的List<StoreDerivedClass>
不是List<Store>
,而你的IEnumerable<StoreDerivedClass>
是 一个 IEnumerable<Store>
是 Co- and Contravariance.
List<Group>
不是 List<Store>
。但是,您可以使用 ToList
方法的类型参数来使其创建 List<Store>
代替:
NextPrevious(model.Group.ToList<Store>(), ...)
假设您使用的是 C# 4 或更高版本以及 .NET 4 或更高版本,因此您可以使用 IEnumerable<T>
的协方差。
我正在尝试调用函数
NextPrevious((List<Store>)model.Group.ToList(), 3, groupPage.Value, ref next, ref previous);
方法定义为..
private void NextPrevious(List<Store> model, int numFields, int page, ref bool nextRef, ref bool previousRef)
{
...
}
但我收到无法将组转换为商店的错误。 model 是 class 中的一个变量,其中包含 Group 对象列表和更多内容。
群组也是 class 商店的子class。
我只检查方法中的基本 List<>
内容,例如 method.Count
或 method.Skip()
所以如果有更简单的方法可以做到这一点,我洗耳恭听,我我没有调用任何特定的 Store 或 Group 方法。
抱歉,如果我 post 提供的信息太少,如果需要,我可以 post 更多。谢谢!
您不能将不同类型的通用集合分配给彼此! List<Class> = List<Subclass>
因为这些集合的类型不同!
如果您 100% 确定 model.Group 仅包含 Store 类型的元素,您可以执行此操作 model.Group.Select(x => (Store)x).ToList()
或 model.Group.OfType<Store>().ToList()
如果您不确定model.Group.Where(x => x is Store).Select(x => (Store)x).ToList()
让你的 List<Store>
成为 IEnumerable<Store>
。
之所以你的List<StoreDerivedClass>
不是List<Store>
,而你的IEnumerable<StoreDerivedClass>
是 一个 IEnumerable<Store>
是 Co- and Contravariance.
List<Group>
不是 List<Store>
。但是,您可以使用 ToList
方法的类型参数来使其创建 List<Store>
代替:
NextPrevious(model.Group.ToList<Store>(), ...)
假设您使用的是 C# 4 或更高版本以及 .NET 4 或更高版本,因此您可以使用 IEnumerable<T>
的协方差。