2014-03-13 19 views
0

我創建了一個列表,其中包含空格和一個帶有框的列表。如何創建一個可以自動更新對象的列表

  1. 列表中的每個框檢查它是否適合任何空格。

  2. 如果它適合,那麼箱必須放置在該空間。

    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); 
      } 
     } 
    } 
} 

回答

1

第一件事情就是有很多未知的對象爲我們實際上給您例如全面的解決方案是什麼類型的SpaceBox和對象checkboxfitsplacetheboxdividespace。我不認爲這些是.net中的類。如果他們是,那麼請讓我們知道。

因此,對於通用解決方案來說,可以考慮遞歸函數。這會讓你的生活變得更簡單。

這是一個很好的開始。

http://www.codeproject.com/Articles/142292/Recursive-methods-in-Csharp

嘗試了這一點,但不是很確定是否會工作

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)); 
       } 
      } 
     } 
    } 
} 

希望這有助於

+0

感謝您的幫助。這裏劃分的空間應該代替使用的空間。 – user3196716

相關問題