我有一个定义为的接口
public interface IReaderInfo
{
string Displayname {get;}
}
Run Code Online (Sandbox Code Playgroud)
以及实现该接口的类
public class ReaderInfo : IReaderInfo
{
string DisplayName {get;}
}
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个返回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.
}
Run Code Online (Sandbox Code Playgroud)
我该如何施展它?
您必须使用已铸造的项目创建新列表:
var readers = Ireaders.Cast<ReaderInfo>().ToList();
Run Code Online (Sandbox Code Playgroud)
或者,如果有可能存在不兼容的IReaderInfo条目,并且您只想在结果中使用实际的ReaderInfo对象:
var readers = Ireaders.OfType<ReaderInfo>().ToList();
Run Code Online (Sandbox Code Playgroud)