将基础对象的集合转换为子对象的集合

时间:2014-12-04 07:12:18

标签: c# .net

我有一个从接口IX实现的类;

interface IX
{  
    Type t;
    int id;
}
class X : IX
{   
    public string x;   
    public string y;   
    public string z;
}

我得到了IX []的集合。我想编写一个通用代码,我可以将其转换为X所需的对象到X []的集合。

1 个答案:

答案 0 :(得分:0)

您可以使用linq。

IX[] IXes;
// populating IXes here...
X[] Xes;
Xes = IXes.Cast<X>().ToArray();

此过程的通用方法如下所示

static TClass[] Cast<TInterface, TClass>(TInterface[] a) where TClass : TInterface
{
    return a.Cast<TClass>().ToArray();
}