gpt4 book ai didi

c# - IPagedList 实现了 IList 接口(interface),但是

转载 作者:太空宇宙 更新时间:2023-11-03 17:33:09 24 4
gpt4 key购买 nike

我有 IPagedList 接口(interface),它实现了这样的 IList

public interface IPagedList<T> : IList<T>
{
int PageCount { get; }
int TotalItemCount { get; }
int PageIndex { get; }
...
}

现在我想使用这个IPagedList 来表示带分页的数据。我正在尝试将使用 IList 的现有代码转换为 IPagedList

public IList<MyViewModel> Data
{
get
{
List<MyViewModel> myVal = new List<MyViewModel>();
foreach (MyModel m in data)
{
myVal.Add(new MyViewModel(m));
}
return myVal;
}
}

所以,我想知道为什么不能将其转换为

public IPagedList<MyViewModel> Data
{
get
....

因为 IPagedList 实现了 IList,我该如何解决这个问题。

最佳答案

IPagedList<T>工具 IList<T>List<T>还实现了 IList<T> , 没错。

但这并不意味着 List<T>可以转换成 IPagedList<T> .那仍然是两种不同的类型。想一想:保时捷是汽车,标致是汽车,但它们仍然不可互换。

您需要具体实现 IPagedList<T>界面。如果你有一个,你可以使用这个代码:

public IList<MyViewModel> Data 
{
get
{
var myVal = new PagedList<MyViewModel>();
foreach (MyModel m in data)
{
myVal.Add(new MyViewModel(m));
}
return myVal;
}
}

关于c# - IPagedList 实现了 IList 接口(interface),但是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12299248/

24 4 0