Проблемы проектирования и реализации Enumerable.AsEnumerable<FarPoint.Win.Spread.Row>
Как я могу сделать возврат типа данных IEnumerable<datatype>
если нет AsEnumerable()
метод. Например:
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();
Я хочу перебрать все поля подряд и установить значения во время выполнения - которые будут поступать из базы данных. Есть ли способ, которым я могу достичь этого? Если есть какое-то решение, пожалуйста, дайте мне знать с некоторыми примерами. Даже если пример не может быть показан с использованием Farpoint - любой другой вид примера приветствуется. Заранее спасибо.
1 ответ
Вы можете создать метод расширения. Пример без 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 содержит значения уже в соответствующей форме. Вы реализуете метод расширения, чтобы он содержал логику для перечисления строк для FarPoint.
Насколько я понимаю ваш вопрос, вы хотите расширить одну строку и перечислить значения полей. Вы будете использовать тип данных строки и перечислять поля в методах расширения.