2016-03-07 109 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

相关问题