Вы можете использовать модуль inspect
, чтобы получить полный исходный код для этого. Вы должны использовать метод getsource()
для этого из модуля inspect
. Например:
import inspect
def get_my_code():
x = "abcd"
return x
print(inspect.getsource(get_my_code))
Вы можете проверить дополнительные параметры в приведенной ниже ссылке. получить ваш код python
Это потому, что класс DataRowCollection реализует только неуниверсальную версию IEnumerable
. Таким образом, компилятор не знает, каков тип переменной.
Явно помещая тип туда, вы в основном указываете компилятору генерировать явное приведение из object
в DataRow
.
Эту проблему вы найдете во многих коллекциях и классах, добавленных еще в дни .NET 1.x, до того как дженерики стали доступны.
Хотя codeka прав, существуют некоторые другие методы, чтобы получить больше удобства в этих DataTable
и DataRow
вещах.
В .Net 3.5 вы можете добавить сборку System.Data.DataSetExtensions
.
Она содержит некоторые функции расширения, такие как AsEnumerable(this System.Data.DataTable)
или Field
, с помощью которых вы можете вызвать их в цикле foreach и привести столбец непосредственно к нужному типу:
int columnIndex = 2;
foreach(var row in MyDataTable.AsEnumerable())
{
var content = row.Field<double>(columnIndex);
}