Какой синтаксис LinQ? - PullRequest
       0

Какой синтаксис LinQ?

0 голосов
/ 05 января 2011

При поиске слова в поле поиска у меня будет возможность найти слово, например, «куки», набрав «Coo» или «oOk». какой синтаксис LinQ мне нужен для создания этой функциональности?

Кроме того, функциональность должна учитывать нечувствительность к регистру, например, слово "ComPuTER" должно быть найдено путем ввода слова "MpUT"?

Ответы [ 3 ]

1 голос
/ 05 января 2011

Вы можете использовать contains:

var query = from t in tbl
            where t.ToUpper().Contains(input.ToUpper())
            select t;

Я использовал ToUpper, чтобы убедиться, что таблица и источник совпадают, поэтому «Coo» будет соответствовать «куки»

В SQLMethods также есть метод Like, но я не использовал его ...

var query = from t in tbl
            where SqlMethods.Like(t, "%"+input+"%")
            select t;

(подробнее здесь: http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/10/16/linq-to-sql-like-operator.aspx)

0 голосов
/ 05 января 2011

Вот один из способов использования ваших значений. Попробуйте это в LinqPad. Хотя на самом деле он не использует всю мощь Linq, и вы захотите посмотреть его для очень больших источников.

string[] words1 = {"cookies", "lasagna", "steak"};

string searchTerm1 = "Coo";
var matches1 = words1.Where (w => w.ToLowerInvariant().Contains(searchTerm1.ToLowerInvariant()));
Console.WriteLine(matches1.Count().ToString());

string searchTerm2 = "oOk";
var matches2 = words1.Where (w => w.ToLowerInvariant().Contains(searchTerm2.ToLowerInvariant()));
Console.WriteLine(matches2.Count().ToString());

List<string> words2 = new List<string>();
words2.AddRange(new string[] {"abacus", "ComPuTER", "coffee maker"});

string searchTerm3 = "MpUT";
var matches3 = words2.Where (w => w.ToLowerInvariant().Contains(searchTerm3.ToLowerInvariant()));
Console.WriteLine(matches3.Count().ToString());
0 голосов
/ 05 января 2011

что-то вроде:

var cookies = (from t in tbl where t.Contains("oOK") select t);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...