2014-10-28 21 views
0

我正在尋找一種方式來放置從字典項解壓到同一行中的業務邏輯正確的順序如何放置物品從字典中VM要有序列表

例如具有系統標識符typeone的項目,然後爲每行輸入2。

該字典有許多值的一個關鍵,我希望按照每個鍵的每個實例按相同的順序列出值。我保證至少有一個值存在,但不能同時存在。

例如,一個行:

  <tr> 
       <td>@vendorItemKeys.Key.Vendor</td> 
       <td>@vendorItemKeys.Key.ItemCode</td> 
       @foreach (var vendorItemDetail in Model.UpcItems[topLevelKey] 
       { 
        @if (vendorItemDetail.SystemIdentifier == SystemIdentifier.typeOne) 
        { 
         <td>@vendorItemDetail.CaseUpc</td> 
         <td>@vendorItemDetail.Description</td> 
         <td>@vendorItemDetail.CasePack</td> 
         <td>@vendorItemDetail.Size</td> 
         <td>@vendorItemDetail.SystemIdentifier</td> 
        } 
        else if (vendorItemDetail.SystemIdentifier == SystemIdentifier.typeTwo) 
        { 
         <td>@vendorItemDetail.CaseUpc</td> 
         <td>@vendorItemDetail.Description</td> 
         <td>@vendorItemDetail.CasePack</td> 
         <td>@vendorItemDetail.Size</td> 
         <td>@vendorItemDetail.SystemIdentifier</td> 
        } 
        else 
        { 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
        } 
       } 
      </tr> 

但是這個代碼不考慮一個事實,如果我先搶typeTwo的typeOne它會反向顯示。有關如何解決這個問題的任何建議?

回答

1

也許switch可以幫助(apols是我的剃鬚刀是舉步維艱):

  @foreach (var vendorItemDetail in Model.UpcItems[topLevelKey].OrderBy(f => SomeOrderFunction())) 
      { 
       switch(vendorItemDetail.SystemIdentifier) 
       { 
        case SystemIdentifier.typeOne: 
        case SystemIdentifier.typeTwo: 
        @{ 
         <td>@vendorItemDetail.CaseUpc</td> 
         <td>@vendorItemDetail.Description</td> 
         <td>@vendorItemDetail.CasePack</td> 
         <td>@vendorItemDetail.Size</td> 
         <td>@vendorItemDetail.SystemIdentifier</td> 
        } 
         break; 
        case default: 
        @{ 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
         <td></td> 
        } 
         break; 
       } 
      } 
+0

的.OrderBy功能的關鍵是解決這一個。謝謝! – Richard 2014-10-29 12:37:11