C# 在联接中选择多个字段
我正在尝试按Magnitude分组并返回一个匿名类型,其中包含字段Magnitude、CalibracionID和MaxDate,以便随后按CalibracionVerificationId加入,但下面的linq查询不起作用:C# 在联接中选择多个字段,c#,linq,join,C#,Linq,Join,我正在尝试按Magnitude分组并返回一个匿名类型,其中包含字段Magnitude、CalibracionID和MaxDate,以便随后按CalibracionVerificationId加入,但下面的linq查询不起作用: (from c in equipo.CalibracionVerificacion join c2 in (from c3 in equipo.CalibracionVerificacion where c3.equipoI
(from c in equipo.CalibracionVerificacion
join c2 in
(from c3 in equipo.CalibracionVerificacion
where c3.equipoId == equipo.equipoId && !(c3.magnitudId == null || c3.magnitudId.Trim() == string.Empty)
group c3 by c3.magnitudId into cgroup
select new
{
MagnitudID = cgroup.Key,
CalibracionID = cgroup.Select(x => x.calibracionVerificacionId),
MaxDate = cgroup.Max(x => x.fechaPrevista),
}
) on c.calibracionVerificacionId equals c2.CalibracionID
where c.equipoId == equipo.equipoId
select c).Min(d => d.fechaPrevista);
不清楚你在问什么。看起来您正在加入相同的列表,然后分组,然后选择最大日期的最小值 如果是这样的话,也许这对你有用:
void Main()
{
var CalibracionVerificacion = new List<Equipo>();
var results = CalibracionVerificacion
.Join(
CalibracionVerificacion.Where(x => !String.IsNullOrWhiteSpace(x.magnitudId)),
c1 => c1.equipoId,
c2 => c2.equipoId,
(c1, c2) => new {c1, c2})
.GroupBy(x => x.c2.magnitudId)
.Select(g => new
{
MagnitudID = g.Key,
CalibracionID = g.Select(x => x.c1.calibracionVerificacionId),
MaxDate = g.Max(x => x.c1.fechaPrevista)
})
.Min(g => g.MaxDate);
}
class Equipo {
public int equipoId { get; set; }
public string magnitudId { get; set; }
public int calibracionVerificacionId { get; set; }
public int fechaPrevista { get; set; }
}
void Main()
{
var CalibracionVerificacion=新列表();
var结果=CalibracionVerification
.加入(
CalibracionVerification.Where(x=>!String.IsNullOrWhiteSpace(x.magnitudId)),
c1=>c1.等轴面,
c2=>c2.等轴面,
(c1,c2)=>新的{c1,c2})
.GroupBy(x=>x.c2.magnitude)
.选择(g=>new
{
Magnitude=g.键,
CalibracionID=g.Select(x=>x.c1.CalibracionVerificationId),
MaxDate=g.Max(x=>x.c1.fechaPrevista)
})
.Min(g=>g.MaxDate);
}
阶级装备{
公共整型等值面{get;set;}
公共字符串magnitudId{get;set;}
public int-calibracionVerificacionId{get;set;}
公共int fechaPrevista{get;set;}
}
代码在这里没有帮助。要共享数据结构的架构吗?还有一个预期结果的例子。如果上述问题解决了你的问题,那么请将其标记为解决方案,如果没有,那么请让我知道我可以如何帮助你。