Где в запросе с массивом в LINQ

У меня есть номер массива = {2,3,4,5,6}

Теперь я должен выбрать строки из таблицы "dtlRecord", где это число является столбцом.

Number count
2      10
3      23
4      20

Таким образом, то, в чем я нуждаюсь,

select sum(count) from dtlRecord where number in (2,3,4,5,6) group by number

Мне нужно выше запроса в LINQ к SQL

7
задан jason 27 January 2010 в 02:08
поделиться

3 ответа

Как насчет просто используя внутреннее соединение:

int[] numbers = new[] { 2, 3, 4, 5, 6 };

from r in dtlRecord
join number in numbers on r.Number equals number
group r by r.Number into g
        select new {
            Number = g.Key,
            Sum = g.Sum(r => r.Count)
        };

или

dtlRecord
    .Join(numbers, r => r.Number, number => number, (r, number) => new {r, number})
    .GroupBy(arg => arg.r.Number, arg => arg.r)
    .Select(g => new
    {
        Number = g.Key,
        Sum = g.Sum(r => r.Count)
    });
0
ответ дан 7 December 2019 в 14:32
поделиться

Использование Перечисление Перечисление. Подключится :

int[] numbers = new[] { 2, 3, 4, 5, 6 };
var query = from r in dtlRecords
            where numbers.Contains(r.Number)
            group r by r.Number into g
            select new {
                Number = g.Key,
                Sum = g.Sum(r => r.Count)
            };

foreach(var result in query) {
    Console.WriteLine("Number = {0}, Sum = {1}", result.Number, result.Sum);
}
3
ответ дан 7 December 2019 в 14:32
поделиться

LINQ, эквивалент, где в
http://www.onedotnetway.com/linq-equivalent-of-ews-in/

1
ответ дан 7 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: