C# 如何使用linq按嵌套属性分组
我有以下课程:C# 如何使用linq按嵌套属性分组,c#,sql-server,linq,C#,Sql Server,Linq,我有以下课程: public class Split { public int Id { get; set; } public virtual ICollection<Sort> Sorts { get; set; } public double Mass { get; set; } } public class Sort { public int Id { get; set; } public virtual ICollection<F
public class Split
{
public int Id { get; set; }
public virtual ICollection<Sort> Sorts { get; set; }
public double Mass { get; set; }
}
public class Sort
{
public int Id { get; set; }
public virtual ICollection<Fraction> Fractions { get; set; }
}
public class Fraction
{
public int Id { get; set; }
public Method Method { get; set; }
}
public class Method
{
public int Id { get; set; }
public string Code { get; set; }
}
最后,我希望能够得到这个列表,并提出类似这样的问题:给我拆分,这样他们的方法就是samm。如果你能建议一个更好的结构,它也很好。我将从SQL server获取这些值,因此我正在寻找性能最好的结构。我不确定为什么需要排序或分数,但这里介绍了如何从splits是IEnumerable的结构中获取这些值
或者在方法语法中
var result = splits.SelectMany(
s => s.Sorts.SelectMany(
r => r.Fractions.Select(
f => new
{
s.Id,
s.Mass,
f.Method.Code
})));
你要哪个身份证。我猜是分开的。身份证?到目前为止你试过什么?我看不到任何明显的聚合,那么你所说的分组是什么意思呢?@ESG这实际上看起来像是他们想要做与分组相反的事情。
var result = from s in splits
from r in s.Sorts
from f in r.Fractions
select new
{
s.Id,
s.Mass,
f.Method.Code
};
var result = splits.SelectMany(
s => s.Sorts.SelectMany(
r => r.Fractions.Select(
f => new
{
s.Id,
s.Mass,
f.Method.Code
})));