C# 如何创建随对象自动更新的列表

C# 如何创建随对象自动更新的列表,c#,C#,我已经创建了一个有空格的列表,还有一个带方框的列表 列表中的每个框都检查它是否适合任何空格 若它合适,那个么盒子必须放在那个空间里 2.1。放置后,其中可能存在一些剩余空间 2.2。这个空间必须分为三个空间 2.3。应将这三个空格添加到空格列表中,并重复此过程,直到列表中的任何空格中都没有方框 在这里,每个空间可以分配0到100个盒子。我的问题是如何将这些剩余的空间再次添加到列表中,并删除已使用的空间 Boolean Boxfits, Boxplaced; foreach (Space spac

我已经创建了一个有空格的列表,还有一个带方框的列表

  • 列表中的每个框都检查它是否适合任何空格

  • 若它合适,那个么盒子必须放在那个空间里

    2.1。放置后,其中可能存在一些剩余空间

    2.2。这个空间必须分为三个空间

    2.3。应将这三个空格添加到空格列表中,并重复此过程,直到列表中的任何空格中都没有方框

  • 在这里,每个空间可以分配0到100个盒子。我的问题是如何将这些剩余的空间再次添加到列表中,并删除已使用的空间

    Boolean Boxfits, Boxplaced;
    foreach (Space space in ListofSpaces)
    {
        foreach (Box box in ListofBoxes)
        {  
            Boxfits = checkboxfits.Checkboxfits(box,space);
            if (Boxfits == true)
            {
                Boxplaced =  placethebox.Placethebox(box, space);
                if (Boxplaced == true)
                {
                    ListofSpaces =  dividespace.Dividespace(box, space);
                }
            }
        }
    }
    

    首先,我们需要为您提供许多未知对象的全面解决方案,例如,什么类型的
    空间
    和对象
    复选框匹配
    放置框
    分割空间
    。我不认为这些是.net中的类。如果是,请告诉我们

    因此,对于一般解决方案,请考虑递归函数。那会让你的生活更简单

    这是一个好的开始

    试试这个,但不是很确定它是否有效

    public void AddBoxToSpaces(List<Space> ListofSpaces)
    {
        Boolean Boxfits, Boxplaced;
        foreach (Space space in ListofSpaces)
        {
            foreach (Box box in ListofBoxes)
            {
                Boxfits = checkboxfits.Checkboxfits(box, space);
                if (Boxfits == true)
                {
                    Boxplaced = placethebox.Placethebox(box, space);
                    if (Boxplaced == true)
                    {
                        //ListofSpaces = dividespace.Dividespace(box, space);
                        AddBoxToSpaces(dividespace.Dividespace(box, space));
                    }
                }
            }
        }
    }
    
    public void AddBoxToSpaces(列表空间)
    {
    布尔箱型拟合,箱型放置;
    foreach(列表空间中的空间)
    {
    foreach(框列表中的框)
    {
    方格拟合=方格拟合。方格拟合(方格,空格);
    if(Boxfits==true)
    {
    放置的盒子=放置盒子。放置盒子(盒子,空间);
    if(Boxplaced==true)
    {
    //listofspace=dividespace.dividespace(框,空格);
    AddBoxToSpace(dividespace.dividespace(box,space));
    }
    }
    }
    }
    }
    

    希望这有帮助

    谢谢你的帮助。在这里,分隔的空间应取代使用的空间。