我有一个枚举如下:

public enum BPLevel {
  Normal = 1,
  HighNormal = 2,
  HypertensionStage1 = 3,
  ModerateHypertensionStage2 = 4,
  SeverHypertensionStage3 = 5,
} // BloodPressureLevel

我有以下分类:

我正在使用 Entity Framework ,我需要计算每个级别有多少人:
IDictionary<BPLevel, Int32> stats = context
  .Persons
  .Select(x => new { PersonId = x.Person.Id, BPDiastolic = x.BPDiastolic, BPSystolic = x.BPSystolic })
  .Count( ...

我的问题是如何在查询中应用此分类?

最佳答案

我只想添加一个分配给函数调用结果的分类成员

IDictionary<BPLevel, Int32> stats = context
  .Persons
  .Select(x => new { PersonId = x.Person.Id, BPDiastolic = x.BPDiastolic,
                     BPSystolic = x.BPSystolic,
                     Classification = GetClassification(BPDiastolic, BPSystolic) })
  .Count( ...

BPLevel GetClassification(int diastolic, int systolic)
{
    ...
}

对 EF 的查询有时不喜欢在查询内部发生的操作,因此您可能需要在 ToList 之前执行 Select 以将其放入内存(因此它的 LINQ to objects)。

关于c# - 对范围内的值进行分类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25689686/

10-11 23:27