C# Can';不引用方法属性
我正在尝试调用一个函数C# Can';不引用方法属性,c#,asp.net-mvc,methods,properties,polymorphism,C#,Asp.net Mvc,Methods,Properties,Polymorphism,我正在尝试调用一个函数 NextPrevious((List<Store>)model.Group.ToList(), 3, groupPage.Value, ref next, ref previous); NextPrevious((List)model.Group.ToList(),3,groupPage.Value,ref next,ref previous); 方法定义为 private void NextPrevious(List<Store> model
NextPrevious((List<Store>)model.Group.ToList(), 3, groupPage.Value, ref next, ref previous);
NextPrevious((List)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)
{
...
}
private void NextPrevious(列表模型,int numFields,int page,ref bool nextRef,ref bool previousRef)
{
...
}
但我得到一个无法将组转换为存储的错误。
模型是一个类中的变量,该类包含组对象列表和其他一些对象
组也是类存储的一个子类
我只检查方法中的基本List
内容,比如method.Count
或method.Skip()
,所以如果有更简单的方法,我洗耳恭听,我不会调用任何特定的存储或组方法
对不起,如果我发布的信息太少,我可以发布更多,如果需要。谢谢 您不能将不同类型的通用集合分配给彼此<代码>列表=列表因为这些集合的类型不同 如果100%确定model.Group只包含Store类型的元素,则可以执行此操作
model.Group.Select(x=>(Store)x.ToList()
或model.Group.OfType().ToList()
如果您不确定
model.Group.Where(x=>x是存储)。请选择(x=>(存储)x).ToList()
您不能将具有不同类型的通用集合分配给彼此<代码>列表=列表因为这些集合的类型不同
如果100%确定model.Group只包含Store类型的元素,则可以执行此操作model.Group.Select(x=>(Store)x.ToList()
或model.Group.OfType().ToList()
如果您不确定model.Group.Where(x=>x是存储),请选择(x=>(存储)x).ToList()
使您的列表成为一个IEnumerable
您的列表
不是列表
,而是IEnumerable
是IEnumerable
的原因在于。让您的列表
成为IEnumerable
您的列表
不是列表
,但您的IEnumerable
是IEnumerable
的原因在于。a列表
不是列表
。但是,您可以使用ToList
方法的类型参数使其创建列表
:
NextPrevious(model.Group.ToList<Store>(), ...)
NextPrevious(model.Group.ToList(),…)
假设您使用的是C#4或更高版本和.NET 4或更高版本,那么您可以使用IEnumerable
AList
的协方差。但是,您可以使用ToList
方法的类型参数使其创建列表
:
NextPrevious(model.Group.ToList<Store>(), ...)
NextPrevious(model.Group.ToList(),…)
假设您使用的是C#4或更高版本和.NET 4或更高版本,那么您可以使用IEnumerable
的协方差,model.Group.ToList()的实际值是多少?你能发布它吗?请发布准确的错误消息。model.Group.ToList()的实际值是多少?你能发布它吗?请发布准确的错误消息。