我创建了一个列表,其中包含空格和一个带框的列表。
列表中的每个框都会检查它是否适合任何空格。
如果它适合,则必须将盒子放入该空间。
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);
}
}
}
}
答案 0 :(得分:1)
首先,我们有很多未知对象可以为您提供全面的解决方案,例如Space
Box
和对象checkboxfits
placethebox
{ {1}}。我不认为这些是.net中的类。如果是的话请告诉我们。
因此,对于通用解决方案,请考虑递归函数。这将使你的生活更简单。
这是一个好的开始。
http://www.codeproject.com/Articles/142292/Recursive-methods-in-Csharp
试试这个,但不太确定它是否可行
dividespace
希望这有帮助