C# 设计问题和实现可枚举。可枚举<;FarPoint.Win.Spread.Row>;

C# 设计问题和实现可枚举。可枚举<;FarPoint.Win.Spread.Row>;,c#,ienumerable,enumeration,farpoint-spread,C#,Ienumerable,Enumeration,Farpoint Spread,如果没有AsEnumerable()方法,如何使数据类型返回IEnumerable。例如: FarPointSpread1.ActiveSheet.Rows[e.Row] 不包含AsEnumerable(),因此我无法执行此操作 FarPointSpread1.ActiveSheet.Rows[e.Row].AsEnumerable() e.Row是排列的活动表中的当前行,我希望能够执行以下操作: IEnumerable<FarPoint.Win.Spread.Row> = Fa

如果没有
AsEnumerable()
方法,如何使数据类型返回
IEnumerable
。例如:

FarPointSpread1.ActiveSheet.Rows[e.Row]
不包含
AsEnumerable()
,因此我无法执行此操作

FarPointSpread1.ActiveSheet.Rows[e.Row].AsEnumerable()
e.Row
是排列的活动表中的当前行,我希望能够执行以下操作:

IEnumerable<FarPoint.Win.Spread.Row> = FarPointSpread1.ActiveSheet.Rows[e.Row].AsEnumerable();
IEnumerable=FarPointSpread1.ActiveSheet.Rows[e.Row].AsEnumerable();
我想迭代一行中的所有字段,并在运行时设置值——这将来自数据库。 有什么办法可以做到这一点吗?如果有一些解决方法,请让我知道一些例子。即使无法使用Farpoint显示示例,也欢迎使用任何其他类型的示例。提前感谢。

您可以创建一个。没有FarPoint的示例如下:

public class TestClass
{
    public IReadOnlyCollection<int> Values { get; set; }
}

public static class TestClassExtensions
{
    public static IEnumerable<int> AsEnumerable(this TestClass cls)
    {
        return cls.Values.AsEnumerable();
    }
}

// Call
var cls = new TestClass();
var enum = cls.AsEnumerable();
公共类TestClass
{
公共IReadOnlyCollection值{get;set;}
}
公共静态类TestClassExtensions
{
公共静态IEnumerable AsEnumerable(此TestClass cls)
{
返回cls.Values.AsEnumerable();
}
}
//召唤
var cls=newtestclass();
var enum=cls.AsEnumerable();
此示例显示了扩展方法的一般结构—当然,它非常简单,因为TestClass包含已匹配的值。您应该实现扩展方法,以便它包含可枚举FarPoint行的逻辑。

据我所知,您希望扩展一行并枚举字段的值。您可以使用行的数据类型并枚举扩展方法中的字段。

您并没有真正解释您要做的事情,只是说明您要做的事情不起作用。我不希望能够迭代
对象。它不公开可枚举的
单元格
属性吗?还是要迭代所有行?那么您不应该使用索引器
[e.Row]
,因为它返回一行。您希望在一行中循环什么?它的细胞?我真的不知道代码中
行的实际类型,但是如果它有一些单元格集合,您可以实现一些扩展method@CodeCaster-我希望能够做到这一点-
IEnumerable nthRow=fpSpread1.ActiveSheet.Cells[e.Row].AsEnumerable();nthRow.ToList().ForEach(r=>r.SetField(“A”,“Test”);)
您再次显示代码,而不是解释您希望它做什么。是要迭代所有行以设置字段,还是要迭代行中的所有字段?@CodeCaster-我要迭代行中的所有字段并在运行时设置值-这将来自数据库