Что имеет Предопределенный #if symbos c#?

У вас есть порядок смешивания ваших петель; они считаются вложенными слева направо, поэтому for r in a[g] представляет собой внешний цикл и выполняется первым. Поменяйте петли:

print [r['n'] for g in good for r in a[g]]

Теперь g определен для следующего цикла for r in a[g], и выражение больше не вызывает исключение:

>>> a={
...   1: [{'n': 1}, {'n': 2}],
...   2: [{'n': 3}, {'n': 4}],
...   3: [{'n': 5}],
... }
>>> good = [1,2]
>>> [r['n'] for g in good for r in a[g]]
[1, 2, 3, 4]
9
задан BCS 21 August 2008 в 23:51
поделиться

3 ответа

Для добавления к тому, что сказал Nick документация MSDN не перечисляет предопределенных имен. Казалось бы что вся потребность прибыть из #define и /define.

#if на MSDN

4
ответ дан 4 December 2019 в 22:31
поделиться

Зависит от того, какие / определяют параметры компилятора, которые Вы используете. Visual Studio помещает DEBUG символ там для Вас через настройки проекта, но Вы могли создать любые, которые Вы хотите.

4
ответ дан 4 December 2019 в 22:31
поделиться

Ну, это зависит от компилятора, который Вы используете, и параметры командной строки. Моно определяет различные имена, чем компилятор Microsoft по умолчанию, и в зависимости от того, какая система Вы - Вы, становятся отличающимися, определяет, и т.д.

Если Вы обеспечиваете более определенную систему, для которой Вы компилируете, мы смогли придумывать список для той конкретной системы (например: система x64 Vista, с помощью Visual Studio 2008).

0
ответ дан 4 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

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