Python использует циклы else after for и while, так что если к циклу ничего не применяется, происходит что-то еще. Например:
test = 3
while test == 4:
print("Hello")
else:
print("Hi")
Вывод будет «Привет» снова и снова (если я прав).
Используется ли . Где
используется в таблице <>
?
Если это так, то перед захватом каких-либо данных он должен преобразовать LINQ в SQL и для этого преобразовать строку
в десятичное
. Он пока не пытается фактически выполнять сравнения, он пытается построить конструкции, необходимые для извлечения данных.
Это помогает?
.Where(t => String.IsNullOrEmpty(someNullString) || (t.SomeProperty >= Convert.ToDecimal(someNullstring)))
Заметили () вокруг второго условия? Я не думаю, что это работает, но в целом я предпочитаю помещать () вокруг каждого условия в моем коде. Таким образом, компилятор знает, какие части принадлежат друг другу, когда он компилирует код, чтобы подготовить его к оценке короткого замыкания ...
Я не могу воспроизвести какую-либо проблему с оценкой короткого замыкания ...
Я думаю, это выглядит примерно так:
[CompilerGenerated]
private static bool <MyMethod>b__f(MyObject t)
{
return (String.IsNullOrEmpty(someNullString)
|| t.SomeProperty >= Convert.ToDecimal(someNullstring));
}
короткое замыкание здесь хорошо работает.
Я подозреваю, что другие элементы в вашем Enumerable оценивают первое условие ( String.IsNullOrEmpty (someNullString)
) как ложное.
У вас есть переменная t в любой области, которая может быть оценена?
Вы пробовали использовать такие круглые скобки:
.Where(t => (String.IsNullOrEmpty(someNullString) ||
t.SomeProperty >= Convert.ToDecimal(someNullstring)))
?