Почему var оценивает к Системе. Объект в “foreach (строка var в таблице. Строки)”?

Вы можете использовать модуль inspect, чтобы получить полный исходный код для этого. Вы должны использовать метод getsource() для этого из модуля inspect. Например:

import inspect

def get_my_code():
    x = "abcd"
    return x

print(inspect.getsource(get_my_code))

Вы можете проверить дополнительные параметры в приведенной ниже ссылке. получить ваш код python

17
задан devuxer 7 May 2010 в 17:21
поделиться

2 ответа

Это потому, что класс DataRowCollection реализует только неуниверсальную версию IEnumerable. Таким образом, компилятор не знает, каков тип переменной.

Явно помещая тип туда, вы в основном указываете компилятору генерировать явное приведение из object в DataRow.

Эту проблему вы найдете во многих коллекциях и классах, добавленных еще в дни .NET 1.x, до того как дженерики стали доступны.

18
ответ дан 30 November 2019 в 12:35
поделиться

Хотя codeka прав, существуют некоторые другие методы, чтобы получить больше удобства в этих DataTable и DataRowвещах.

В .Net 3.5 вы можете добавить сборку System.Data.DataSetExtensions.

Она содержит некоторые функции расширения, такие как AsEnumerable(this System.Data.DataTable) или Field(this System.Data.DataRow, int), с помощью которых вы можете вызвать их в цикле foreach и привести столбец непосредственно к нужному типу:

int columnIndex = 2;

foreach(var row in MyDataTable.AsEnumerable())
{
    var content = row.Field<double>(columnIndex);
}
12
ответ дан 30 November 2019 в 12:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: