简单的类型转换期间出错

时间:2013-12-07 21:05:40

标签: c# linq c#-4.0 inheritance type-conversion

我制作了一个自定义类:

class fpCellEnum : FarPoint.Win.Spread.Cell, IEnumerable<FarPoint.Win.Spread.Cell>
{
    public IEnumerable<FarPoint.Win.Spread.Cell> AsEnumerable<TSource>(this IEnumerable<FarPoint.Win.Spread.Cell> source)
    {
        return source;
    }
}

我需要上面的类,以便我可以在FarPoint工作表的单元格上使用Linq。但是我在这段代码上得到以下错误:

fpCellEnum fp = new fpCellEnum();
IEnumerator<fpCellEnum> iEnCells = ((fpCellEnum)fpSpread1.ActiveSheet.Cells[0,0,fpSpread1.ActiveSheet.Rows.Count,fpSpread1.ActiveSheet.Columns.Count]).AsEnumerable<FarPoint.Win.Spread.Cell>();
  

无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Collections.Generic.IEnumerator'。存在显式转换(您是否错过了演员?)

任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

IEnumerable和IEnumerator不一样。您可以使用.GetEnumerator()方法从IEnumerable获取IEnumerator。

IEnumerator<fpCellEnum> iEnCells = ((fpCellEnum)fpSpread1.ActiveSheet.Cells[0,0,fpSpread1.ActiveSheet.Rows.Count,fpSpread1.ActiveSheet.Columns.Count]).AsEnumerable<FarPoint.Win.Spread.Cell>().GetEnumerator();

但是,如果您希望将generics中的Cell转换为fpCellEnum,则会遇到更大的问题。