2016-03-07 137 views
0

我希望我說的是標題右鍵 - 概述:我試圖創建一個輸入複選框。我想顯示所有項目&檢查應通過列表比較檢查的項目。這是我的「破」的代碼&在那裏我有這個打算:檢查列表對象是否包含在另一個列表中

List<ConsolStand> csr = ConsolStand.GetConsolStands(); 
List<PackUserSecurityGroup> sg = PackUserSecurityGroup.GetPackUserSecurityGroup(0, iGroupID); 

foreach (ConsolStand a in csr) 
{ 
    if (sg.Contains(a.CsrID)) 
    { 
     <input type="checkbox" id="@("routeDesc_" + a.CsrDesc)" checked="checked" /> @a.CsrDesc <br /> 
    } 
    else 
    { 
     <input type="checkbox" id="@("routeDesc_" + a.CsrDesc)" /> @a.CsrDesc <br /> 
    } 
} 

PackSecurityGroup只是一個列表對象(它會返回一個int一列),我想比較與CsrID該列表ConsolStand列表中的列。

+1

從您的描述中,它聽起來像這樣: List sg = PackUserSecurityGroup.GetPackUserSecurityGroup(0,iGroupID); ...應該是這樣的: 列表 sg = PackUserSecurityGroup.GetPackUserSecurityGroup(0,iGroupID); ......這會讓你的代碼變得更有意義:剩下的代碼。你能否介紹一下什麼不起作用?是沒有得到檢查或頁面退出? –

回答

0

聽起來好像你在說PackUserSecurityGroup有一些你想比較的ID屬性?在這種情況下,你可以添加更改此:

sg.Contains(a.CsrID) 

sg.Any(s => s.ID == a.CsrID) 

(請確保您有 「使用System.Linq的」 語句也一樣)。但是,使用密鑰爲ID的字典或只是ID的已排序列表替換sg列表會更有效。

+0

完美!我將它列爲一個列表的原因是,我的原始SG列表中有額外的列,爲了讓這兩個ID字段匹配,我刪除了這些列。 – Mason

相關問題