考虑到以下情况,我需要获取属于分配给顶层的中间对象列表的所有底层类对象。我所拥有的结构意味着中等水平的对象从顶层挂起,但底层只是所有的集合。因此,即使列表不存在,我也需要获取所有底层对象,以便有效地“暂停”顶层和中间层。有没有一种方法可以在lambda中执行此操作?收藏集Lambda
class Program
{
static void Main(string[] args)
{
List<TopClass> topClasses = new List<TopClass>();
List<MiddleClass> mcList1 = new List<MiddleClass>();
mcList1.Add(new MiddleClass(1));
mcList1.Add(new MiddleClass(3));
mcList1.Add(new MiddleClass(5));
TopClass tc1 = new TopClass(1, mcList1);
topClasses.Add(tc1);
List<MiddleClass> mcList2 = new List<MiddleClass>();
mcList2.Add(new MiddleClass(2));
mcList2.Add(new MiddleClass(4));
TopClass tc2 = new TopClass(2, mcList2);
topClasses.Add(tc2);
List<MiddleClass> mcList3 = new List<MiddleClass>();
mcList3.Add(new MiddleClass(6));
mcList3.Add(new MiddleClass(7));
TopClass tc3 = new TopClass(3, mcList3);
// ** Note not added to the global list
List<BottomClass> bottomClasses = new List<BottomClass>();
bottomClasses.Add(new BottomClass(10, 1));
bottomClasses.Add(new BottomClass(20, 2));
bottomClasses.Add(new BottomClass(30, 3));
bottomClasses.Add(new BottomClass(40, 4));
bottomClasses.Add(new BottomClass(50, 5));
bottomClasses.Add(new BottomClass(60, 6));
bottomClasses.Add(new BottomClass(70, 7));
bottomClass.FindAll(b => ....?
}
}
public class TopClass //Instruments
{
public int Id { get; set; }
public List<MiddleClass> MiddleClasses { get; set; }
public TopClass(int id, List<MiddleClass> middleClasses)
{
this.Id = id;
this.MiddleClasses = middleClasses;
}
}
public class MiddleClass // Sequences
{
public int Id { get; set; }
public MiddleClass(int id)
{
this.Id = id;
}
}
public class BottomClass //SequenceItem
{
public int Id { get; set; }
public int MiddleClassId { get; set; }
public BottomClass(int id, int middleClassId)
{
this.Id = id;
this.MiddleClassId = middleClassId;
}
}
其结果将是含有10到50,但不是60和70
你可以发布类的类结构摘要。你只是想要“底部类”被过滤?我看不到什么属性包括在兰萨达。 编辑︰刚刚看到了班级结构:) – LukeHennerley
所有你的底部类参考一个中产阶级,所有中产阶级挂掉顶级所以肯定所有底部挂起顶级/中产阶级 – saj
@saj但如果你看中间类没有直接引用顶级类或底级类,因此没有明确的链遵循 –