Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用范围和计算值在LINQ中分组_Linq_Grouping_Range - Fatal编程技术网

使用范围和计算值在LINQ中分组

使用范围和计算值在LINQ中分组,linq,grouping,range,Linq,Grouping,Range,以下各项的LINQ等效语句是什么 SELECT FLOOR(Value / @Step) * @Step AS Bin, COUNT(*) AS Cnt FROM Measurements WHERE (StepId = @StepId) GROUP BY Bin ORDER BY Bin 不清楚这些参数或列来自何处,但假设LINQ到SQL,这应该或多或少等效: var step = ...; var stepId = ...; var query = from m in

以下各项的LINQ等效语句是什么

SELECT FLOOR(Value / @Step) * @Step AS Bin,
       COUNT(*) AS Cnt
FROM Measurements
WHERE (StepId = @StepId)
GROUP BY Bin
ORDER BY Bin

不清楚这些参数或列来自何处,但假设LINQ到SQL,这应该或多或少等效:

var step = ...;
var stepId = ...;
var query =
    from m in dc.Measurements
    where m.StepId == stepId
    group m by m.Bin into g
    orderby g.Key
    select new
    {
        Bin = Math.Floor(Value / step) * step, // where did "Value" come from?
        Cnt = g.Count(),
    };

使用Lambda表达式:

var query = dc.Measurements.AsEnumerable().Where(x=>x.StepId=_stepId).
GroupBy(g=>g.Bin).Select(xg=>new
    {
        Bin = Math.Floor(Value / step) * step, 
        Cnt = xg.Count(),
    }
 );

value是从主键为StepId的度量表返回的度量值