Условие фильтра не работает должным образом в списке (C # 3.0) - PullRequest
0 голосов
/ 07 мая 2010

У меня есть таблица данных, которая имеет много строк NULL или "". Затем я приведу тип DataTable к списку. Теперь, если я хочу отфильтровать эти условия в этом списке и получить результирующее значение ( без NULL или String.Empty или "" records ), что мне делать?

Мой код

DataTableExtensions.AsEnumerable(dt).ToList().ForEach(i =>
                {
                    if (i[0] != null)
                    {
                        if ((i[0].ToString() != string.Empty)|| (i[0].ToString() != " "))
                        {
                            list = dt.AsEnumerable().ToList();
                        }
                    }

                });

Но я получаю все записи. Он не фильтруется.

Использование C # 3.0

Пожалуйста, помогите Спасибо

1 Ответ

2 голосов
/ 07 мая 2010

Вы смотрите на i [0], поэтому я предполагаю, что вас интересует только первый столбец вашей таблицы:

var rows = dt.AsEnumerable()
             .Where(r => !r.IsNull(0) // check for DBNull
                 && r[0] != null 
                 && r[0].ToString().Trim().Length > 0)
             .ToList();

Таким образом, он просматривает каждую строку, но возвращает только те строки, в которых первый столбец имеет значение, а строковое значение не является пустым или пробелом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...