Я считаю некоторые значения типа int (1, 2, 3 или 4) в определенных столбцах datatable
.В столбце могут содержаться только значения от 1 до 9 (исключительные) или ноль.
Например, типичный столбец с 10 записями будет выглядеть следующим образом:
Level
1
2
1
4
3
7
3
3
(null)
9
Это отлично работаетнесмотря на нулевое значение.Пока существует ненулевое значение, мой код работает.
Код завершается ошибкой, когда в столбце содержатся только нулевые значения, однако это может произойти, когда я извлекаю эти данные из базы данных и в зависимости отусловия, все результаты могут быть нулевыми.
Я использую код, показанный ниже, чтобы сделать этот счет.Я посмотрел на этот вопрос: Входная строка была не в правильном формате , но я не уверен в способе использования TryParse()
в этом контексте.
int countnum = tab2table.AsEnumerable().Where(x => int.Parse(x["Level"].ToString()) == 1 || int.Parse(x["Level"].ToString()) == 2 ||
int.Parse(x["Level"].ToString()) == 3 || int.Parse(x["Level"].ToString()) == 4).ToList().Count;
Для примера Level
столбец, показанный выше, countnum
должен быть равен 7. Когда весь столбец равен нулю countnum
должен быть равен 0.
Как это можно изменить, чтобы работать, даже когда весь столбец равен нулю?Я полагаю, если бы был способ проверить, является ли столбец нулевым, я мог бы поместить это в оператор if, но я не нашел способа сделать это.