我有一个定义为的接口(interface)

public interface IReaderInfo
{
    string Displayname {get;}
}

和一个实现该接口(interface)的类
public class ReaderInfo : IReaderInfo
{
    string DisplayName {get;}
}

然后我创建了一个返回List的函数
public List<ReaderInfo> GetReaders
{
     var readers = new List<ReaderInfo>();
     var Ireaders = someobject.Getreaders();// Returns the list of IReaderInfo.
     // Now i would like cast Ireaders as readers and return.
}

我该如何转换?

最佳答案

您必须使用转换的项目创建一个新列表:

var readers = Ireaders.Cast<ReaderInfo>().ToList();

或者,如果可能存在不兼容的IReaderInfo条目,而您只想在结果中使用实际的ReaderInfo对象:
var readers = Ireaders.OfType<ReaderInfo>().ToList();

关于c# - 如何在C#中将List <Interface>转换为List <Class>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44668956/

10-11 16:43