Как отфильтровать данные по условию и без учета регистра? - PullRequest
0 голосов
/ 05 августа 2020

ребята, я пытаюсь получить записи из таблицы данных, при этом он проверяет регистр. Подобно тому, как AB C и ab c - два разных, я использовал StringComparer.OrdinalIgnorecase, но это не работает. как это исправить?

from tblproj in dt.AsEnumerable() 
where tblproj.Field<string>("ProjectStatus") == "Active" && 
      ( string.Equals(tblproj.Field<string>("ColumnName").StartsWith(searchText),StringComparer.OrdinalIgnoreCase) || string.Equals(tblproj.Field<string>("ColumnName").Contains(searchText), StringComparer.OrdinalIgnoreCase))
      || string.Equals(tblproj.Field<long>("ColumnName").ToString().Contains(searchText), StringComparer.OrdinalIgnoreCase)

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Использование правильных версий String.Contains и String.StartsWith для игнорирования регистра в тестах:

var ans = from tblproj in dt.AsEnumerable()
          where tblproj.Field<string>("ProjectStatus") == "Active" &&
                tblproj.Field<string>("ColumnName").StartsWith(searchText, StringComparison.OrdinalIgnoreCase) ||
                tblproj.Field<string>("ColumnName").Contains(searchText, StringComparison.OrdinalIgnoreCase) ||
                tblproj.Field<long>("ColumnName").ToString().Contains(searchText, StringComparison.OrdinalIgnoreCase)
          select tblproj;
0 голосов
/ 05 августа 2020

Какая разница, в каком он регистре? Если нет, то просто выполните .ToUpper () или .ToLower () для значений, затем сравните их.

...