C# c LINQ列表键,结果视图,获取值

C# c LINQ列表键,结果视图,获取值,c#,linq,entity-framework,C#,Linq,Entity Framework,我开始使用C和LINQ,我认为列表可以过滤一个数据库,该数据库按日期重复数据,并通过ToList创建一个列表 List<Registro> datosCalcA = new List<Registro>(); MonitoreoEntities _context = new MonitoreoEntities(); datosCalcA= _context.Registroes.Where(a => a.PuntoDeMedicionId ==

我开始使用C和LINQ,我认为列表可以过滤一个数据库,该数据库按日期重复数据,并通过ToList创建一个列表

 List<Registro> datosCalcA = new List<Registro>(); 
    MonitoreoEntities _context = new MonitoreoEntities();

   datosCalcA= _context.Registroes.Where(a => a.PuntoDeMedicionId == pPuntoDeMedicionId
                      && a.EntradaSalidaId == _operadorA
                      || a.EntradaSalidaId == _operadorB
                      && a.FechaHoraRegistro <= _fechaHoraFinal
                      && a.FechaHoraRegistro >= _fechaHoraInicial).OrderBy(i => i.FechaHoraRegistro).ToList();

var newList = datosCalcA.GroupBy(i => i.FechaHoraRegistro, x => new {Valor = x.Valor}).ToList();

假设您的类如下所示:

 public class myClass
 {
     public int Valor1;
     public int Valor2;
 }
现在您以某种方式列出myClass,可能是从db获取数据:

  List<myClass> myList = GetDataFromDatabase();  // Returns List<myClass>
您可以使用此代码

var ListProduct = from item in myList
select (item.Valor2 * item.Valor1);

不清楚你想做什么?您能否提供具有预期输出的示例数据。您正在使用FechaHoraRegistro作为键和Valor作为比较器创建组,如果需要遍历每个组,您可以使用键在组中循环,然后进行计算。我不使用类。我正在使用EF和过滤。将代码添加到带有EFError 5的滤液顶部当前上下文中不存在名称“x”D:\Proyecto telemetria\SystemaControl\Graficos.aspx.cs 142 61 SystemaControl Error 4'System.Linq.IGrouping'不包含“Valor2”的定义,并且没有扩展方法“Valor2”接受类型为“System.Linq.IGrouping”的第一个参数找不到您是否缺少using指令或程序集引用?D:\Proyecto telemetria\SystemaControl\Graficos.aspx.cs 142 52 SystemaControlI对我们以前尝试过的项进行了错误更改x,错误:error'不包含'Valor1'的定义,并且没有扩展方法'Valor1'接受类型的第一个参数找不到“System.Linq.igroupping”是否缺少using指令或程序集引用?D:\Proyecto telemetria\SystemaControl\Graficos.aspx.cs 141 65 SystemaControl
  var newList = datosCalcA.GroupBy(i => i.FechaHoraRegistro, x => new {x.Valor}).ToList();

             yy = 0;
             foreach (var _datosCalculado in newList)
             {
                 var valorW = newList[yy].ToList(); //auxiliary list to take values (Valor)
                 try
                 {
                     decimal resultado = valorW[0].Valor / valorW[1].Valor;// Take data in pos [0] and [1] in auxiliary list
                 }
                 catch (DivideByZeroException e)  //divide by zero error
                 {
                     decimal resultado = 0;
                 }
                 yy++;
             }
 public class myClass
 {
     public int Valor1;
     public int Valor2;
 }
  List<myClass> myList = GetDataFromDatabase();  // Returns List<myClass>
 var stuff = myList.Select(x => new { Product = x.Valor1 * x.Valor2 });
var ListProduct = from item in myList
select (item.Valor2 * item.Valor1);