Я пробовал использовать "разрыв" с тернарным оператором (? :) так, как работает if-else. это дает ошибку компиляции.
Ошибка
Only assignment, call, increment, decrement, and new object expressions can be used as a statement`
Status s10 = null;
foreach (var item in DeviceStatusList)
{
s10 = item != null ? (Status)(item.Value as List<Status>).Where(x => x.Field.ToString() == "Safe Door").SingleOrDefault() && break: new Status { Field = "", Value = "" };
}
Непонятно, что вы ожидаете от someExpression && break
. Вы пытаетесь присвоить значение переменной, а затем прервать работу? Если так, то &&
действительно не для этого предназначен.
Попробуйте это без перерыва: (Status)(item.Value as List<Status>).SingleOrDefault()(x =>x.Field.ToString() == "Safe Door")
Небольшое примечание: откажитесь от тернарного оператора. Он не очень удобен для чтения для нового человека, которому, возможно, придется иметь дело с этим кодом.
"Как?" Нисколько. Тернарный оператор должен возвращать ровно одно значение. Так чего именно вы здесь пытаетесь достичь? В чем заключается ваша проблема действительный, и вы думаете, что это может быть решение - очевидно, это нет. Помимо этого примечания,
Where
не модифицировать ваш список, но возвращается новый.