我制作了一个自定义类:
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'。存在显式转换(您是否错过了演员?)
任何帮助将不胜感激,谢谢。
答案 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
,则会遇到更大的问题。