Как передать значения через запятую в запрос LINQ без цикла for - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть список значений, разделенных запятыми, мне нужно передать эти значения в запрос LINQ и получить совпадающие значения из БД, я использовал цикл для решения этой проблемы

вот мой код

string drawingList="a,b,c,d";
string[] drawings = drawingList.Trim(',').Split(',');
IQueryable<table> filteredItems = null;
filteredItems =(some linq query)
List<table> filteredResult = new List<table>();
for (int i = 0; i < drawings.Count(); i++)
{
    dr = drawings[i].Trim();
    filteredItems = filteredItems.Where(p1 => p1.WorkItemNumber.Equals(dr));
                    filteredResult.AddRange(filteredItems);
}

Как решить вышеуказанную проблему без цикла for

Ответы [ 2 ]

3 голосов
/ 01 февраля 2012

Попробуйте

filteredItems = filteredItems.Where(i => drawings.Contains(i => i.WorkItemNumber));
1 голос
/ 01 февраля 2012
var result = from   drUntrimmed in drawings
               let  dr = drUntrimmed.Trim()
             from   f in filteredItems
             where  f.WorkItemNumber.Equals(dr)
             select f;
...