在LINQ中使用数组查询的位置

jvm*_*jvm 7 .net c# linq linq-to-sql

我的数组编号= {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
Run Code Online (Sandbox Code Playgroud)

我需要在LINQ to SQL中进行上述查询

Bor*_*itz 2

只使用内连接怎么样:

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)
        };
Run Code Online (Sandbox Code Playgroud)

或者

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)
    });
Run Code Online (Sandbox Code Playgroud)