LinQ массив в условие...
От: Alexys Россия  
Дата: 04.08.15 10:09
Оценка:
Имеем массив со значениями values[] = {'1' , '2'}

LinQ запрос:
context.Table1.Where(x => x.Pole1.StartsWith('1'))

Как к LinQ привязать массив values к условию выборки?

например
context.Table1.Where(x => x.Pole1.StartsWith('1') || x.Pole1.StartsWith('2'))

изначальный массив произвольный, неизвестно сколько элементов может быть...
Отредактировано 04.08.2015 10:11 Alexys . Предыдущая версия .
Re: LinQ массив в условие...
От: Yoriсk  
Дата: 04.08.15 10:24
Оценка:
Здравствуйте, Alexys, Вы писали:

A>Имеем массив со значениями values[] = {'1' , '2'}


A>например

A>context.Table1.Where(x => x.Pole1.StartsWith('1') || x.Pole1.StartsWith('2'))

например

context.Table1.Where(x => values.Any(a => x.Pole1.StartsWith(a))).ToList();
Re: LinQ массив в условие...
От: dmitry_npi Россия  
Дата: 04.08.15 10:24
Оценка:
Здравствуйте, Alexys, Вы писали:

A>Имеем массив со значениями values[] = {'1' , '2'}


A>LinQ запрос:

A>context.Table1.Where(x => x.Pole1.StartsWith('1'))

A>Как к LinQ привязать массив values к условию выборки?


A>например

A>context.Table1.Where(x => x.Pole1.StartsWith('1') || x.Pole1.StartsWith('2'))

A>изначальный массив произвольный, неизвестно сколько элементов может быть...


Может быть, так
context.Table1.Where(x=>values.Any(v=>x.Pole1.StartsWith(v))


Однако, помните, что не всякий Linq провайдер способен такое переварить в нормальный SQL или даже вообще переварить.
Атмосферная музыка — www.aventuel.net
Re: LinQ массив в условие...
От: DarthSidius  
Дата: 04.08.15 10:26
Оценка:
Здравствуйте, Alexys, Вы писали:

A>Имеем массив со значениями values[] = {'1' , '2'}


A>LinQ запрос:

A>context.Table1.Where(x => x.Pole1.StartsWith('1'))

A>Как к LinQ привязать массив values к условию выборки?


A>например

A>context.Table1.Where(x => x.Pole1.StartsWith('1') || x.Pole1.StartsWith('2'))

A>изначальный массив произвольный, неизвестно сколько элементов может быть...


context.Table1.Where(x => values.Any(val => x.Pole1.StartsWith(val)))
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
♠♠♥♠♠♦♥
Re: LinQ массив в условие...
От: koodeer  
Дата: 04.08.15 11:02
Оценка: -1
Здравствуйте, Alexys.

Какая именно СУБД?

Можно попробовать использовать SqlMethods.Like.
И что-то вроде:
var query = ...

foreach (string val in values)
{ 
    string like = val + "%";
    query = query.Where(x => SqlMethods.Like(x.Pole1, like));
}
Re: LinQ массив в условие...
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.08.15 11:31
Оценка: +1
Здравствуйте, Alexys, Вы писали:

http://www.albahari.com/nutshell/predicatebuilder.aspx
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.