Проверка пустоты переменной c#
у меня есть довольно простой вопрос, но он делал свою гайку!!!!
Я создал переменную, которая проверяет мою таблицу данных, чтобы увидеть, существует ли элемент, использующий мой идентификатор элемента управления страницей. Если это так, я хочу предупредить своего пользователя, что они уже выбрали цвет страницы!
мой вопрос в том, как проверить, пуста ли эта переменная или нет!
var qry = from x in db.DT_Control_ColourPalette_PageColors
where x.PageControlID == int.Parse(HF_CPID.Value)
select new
{
x.PageControlID,
};
аргумент, который я думаю, прав?
if (qry !=null)
4 ответов
предполагаю, что должен возвращать одно значение - если это так, то:
var qry = (from x in db.DT_Control_ColourPalette_PageColors
where x.PageControlID == int.Parse(HF_CPID.Value)
select new
{
x.PageControlID,
}).FirstOrDefault();
if(qry != null)
{
// do stuff
}
выражения запросов не возвращают null, насколько я знаю. Если нет результатов, вы просто получаете IQueryable<T>
С T
s внутри.
вы можете использовать это вместо этого, чтобы увидеть, есть ли что-нибудь в результирующем наборе:
if (qry.Any())
var qry = from x in db.DT_Control_ColourPalette_PageColors
where x.PageControlID == CheckValue(HF_CPID.Value)
select new
{
x.PageControlID,
};
private int CheckValue(sting str)
{
if(!string.IsNullOrEmpty(str))
{
return int.Parse(str);
}
else
return 0;//or your default value you want to return
}
Я собирался написать это как ответ на другой ответ, но он действительно слишком велик для этого. Это более или менее в ответ на ответ Натана.
Если результат предназначен для одного значения, и вы получаете это от одного свойства, у меня есть некоторые комментарии.
- нет причин использовать анонимный объект для выбора одного значения.
- если вы обнаружите, что обертываете оператор стиля запроса в скобки, чтобы использовать точку стиль на результат, вы можете рассмотреть только собирается точка стиль.
- выбрать между
FirstOrDefault
иSingleOrDefault
в зависимости от ваших данных. Иногда уместно неявно утверждать, что результат "один или ничего" по сравнению с "первым из чего-то или ничего".
var result = db.DT_Control_ColourPalette_PageColors
.Where(x => x.PageControlID == int.Parse(HF_CPID.Value))
.Select(x => x.PageControlID)
.SingleOrDefault();
if (result != null)
{
//...
}