C# 使用LINQ循环外部类集合中的内部类属性并按外部类属性分组
利用Q&A处理对象属性的循环,如果您有: Class1对象的集合,即listObj1 每个类别1包含属性和类别2对象的集合,即dictObj2 您将如何: 有效地确定内部类Class2的属性 循环遍历内部类Class2的属性 循环通过Class1对象的集合listObj1,选择Class2属性的所有实例 输出Class2属性的集合,例如,第一次迭代将返回MeasurementA集合,每个Class1对象一个。 并按Class1.PropertyA和Class1.PropertyB对集合进行分组 请在下面找到相关课程的大致地图 我一直在尝试使用LINQ查询,但没有成功。康拉德·科科科萨(Konrad Kokosa)提供的服务大部分是在那里。任何想法或指导都将不胜感激C# 使用LINQ循环外部类集合中的内部类属性并按外部类属性分组,c#,linq,group-by,C#,Linq,Group By,利用Q&A处理对象属性的循环,如果您有: Class1对象的集合,即listObj1 每个类别1包含属性和类别2对象的集合,即dictObj2 您将如何: 有效地确定内部类Class2的属性 循环遍历内部类Class2的属性 循环通过Class1对象的集合listObj1,选择Class2属性的所有实例 输出Class2属性的集合,例如,第一次迭代将返回MeasurementA集合,每个Class1对象一个。 并按Class1.PropertyA和Class1.PropertyB对集合进行分组
class MainClass {
List<Class1> listObj1
}
class Class1 {
// a number of fields including...
int PropertyA { get; set; }
int PropertyB { get; set; }
Dictionary<int, Class2> dictObj2 { get; set; }
}
class Class2 {
// a number of fields all of type double...
double MeasurementA { get; set; }
double MeasurementB { get; set; }
double MeasurementC { get; set; }
}
只需循环:
过滤/有效循环:
foreach(var cls1 in listObj1)
{
int tempA = cls1.PropertyA;
foreach(var cls2 in cls1.dictObj2)
{
double tempB = cls2.MeasurementB;
}
}
foreach(var cls1 in listObj1.Where(c1=> c1.PropertyA > 5 && c1.PropertyB > 3))
{
int tempA = cls1.PropertyA;
foreach(var cls2 in cls1.dictObj2.Where(c2=> c2.MeasurementA >= 10))
{
double tempB = cls2.MeasurementB;
}
}