如何在列表C#MVC中检索特定值

如何在列表C#MVC中检索特定值,c#,arrays,asp.net-mvc,arraylist,lis,C#,Arrays,Asp.net Mvc,Arraylist,Lis,我想根据列表本身的特定Id从列表中检索特定值。 这是我的列表值 public List<strucMaterial> PopulateStructMaterialData() { List<strucMaterial> populateStructure = new List<strucMaterial>(); { populateStructure.Add(new strucMateria

我想根据列表本身的特定Id从列表中检索特定值。

这是我的列表值

    public List<strucMaterial> PopulateStructMaterialData()
    {
      List<strucMaterial> populateStructure = new List<strucMaterial>();
        {

            populateStructure.Add(new strucMaterial(){Id = 1, ifOthers = "", materialId = 1, materialNm = "Bricks", structId = 1, structNm = "Walls", insuranceReqId = 0});
            populateStructure.Add(new strucMaterial(){Id = 2, ifOthers = "", materialId = 2, materialNm = "Concrete", structId = 1, structNm = "Walls", insuranceReqId = 0});
            populateStructure.Add(new strucMaterial(){Id = 3, ifOthers = "", materialId = 3, materialNm = "Woods", structId = 1, structNm = "Walls", insuranceReqId = 0});

            populateStructure.Add(new strucMaterial(){Id = 4, ifOthers = "", materialId = 2, materialNm = "Concrete", structId = 2, structNm = "Roof", insuranceReqId = 0});
            populateStructure.Add(new strucMaterial(){Id = 5, ifOthers = "", materialId = 4, materialNm = "Tiles", structId = 2, structNm = "Roof", insuranceReqId = 0});
            populateStructure.Add(new strucMaterial(){Id = 6, ifOthers = "", materialId = 5, materialNm = "Zinc", structId = 2, structNm = "Roof", insuranceReqId = 0});

            populateStructure.Add(new strucMaterial(){Id = 7, ifOthers = "", materialId = 3, materialNm = "Woods", structId = 3, structNm = "Floor", insuranceReqId = 0});
            populateStructure.Add(new strucMaterial(){Id = 8, ifOthers = "", materialId = 6, materialNm = "Reinforced Concrete", structId = 3, structNm = "Floor", insuranceReqId = 0});

        };
        ViewBag.populatebuilding = populateStructure;
        return populateStructure;
    }
我的观点

                  @{

               List<Insurance.ViewModels.strucMaterial> viewModelSM = ViewBag.populatebuilding;

                for (int i = 0; i < viewModelSM.Count; i++)
                {
                    @Html.Label(viewModelSM[i].structNm)
                    @Html.CheckBox("structureMat", new { @id = "structureMat", @value = viewModelSM[i].Id })
                    @Html.Label(viewModelSM[i].materialNm)
                  <br />
                }

             }
@{
列表viewModelSM=ViewBag.populatebuilding;
对于(int i=0;i
}
}
这是我检索materialID和structID的方式

                            int idArray = Convert.ToInt32(structureMat[i]);                     
                        List<strucMaterial> populateID = PopulateStructMaterialData();


                        for (int s = 0; s < populateID.Count; s++ )
                        {

                            if (populateID[s].Id.Equals(idArray))
                            {
                                int matID = populateID[s].materialId;
                                int structID = populateID[s].structId;

                                int a = matID;

                            }
                  }
int-idArray=Convert.ToInt32(structureMat[i]);
List populateID=PopulateStructMaterialData();
for(int s=0;s
它只获取元素的索引值,而不是materialdid和structID值。我的问题是为什么它只读到populateID[s]。。?为什么不将填充作为一个整体进行阅读


谢谢你

对一篇评论的补充哈里·普拉萨德


您可以使用和写入
populateID。首先(x=>x.Id==idArray)。materialId

使用`populateID[s].materialId`访问
materialId
时是否有错误?没有,根本没有错误……我如何仅检索materialId:(如果您想从查询中单独使用
materiald
,您可以简单地执行此操作。
populateID.Where(x=>x.Id==idArray)。选择(x=>x.materialId)
您的代码看起来很好,您是否尝试过构建、刷新或重新连接?尝试一下,它可以工作!!我只是构建了我的项目刷新并重新打开,然后它现在就显示了值。我太傻了
                            int idArray = Convert.ToInt32(structureMat[i]);                     
                        List<strucMaterial> populateID = PopulateStructMaterialData();


                        for (int s = 0; s < populateID.Count; s++ )
                        {

                            if (populateID[s].Id.Equals(idArray))
                            {
                                int matID = populateID[s].materialId;
                                int structID = populateID[s].structId;

                                int a = matID;

                            }
                  }