Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net foreach循环问题_Asp.net - Fatal编程技术网

Asp.net foreach循环问题

Asp.net foreach循环问题,asp.net,Asp.net,branch属于复选框列表类型,但在循环执行此操作时,它只添加了一项,而我希望在branch_id中存储所有“li”,并希望稍后重试为什么它不在branch_is中添加所有内容。是否有任何其他选项可以将所有这些添加到变量branch_id foreach (ListItem li in branch.Items) { if(li.Selected) {

branch属于复选框列表类型,但在循环执行此操作时,它只添加了一项,而我希望在branch_id中存储所有“li”,并希望稍后重试为什么它不在branch_is中添加所有内容。是否有任何其他选项可以将所有这些添加到变量branch_id

          foreach (ListItem li in branch.Items) 
                {
                    if(li.Selected)
                    {

                        List<int> branch_id = new List<int>();
                        branch_id.Add(Convert.ToInt32(li.Value));

                    }
                } 
foreach(在branch.Items中列出项目li)
{
如果(li.选定)
{
列表分支_id=新列表();
分支id.Add(转换为32(li.Value));
}
} 
试试这个

List<int> branch_id = new List<int>();
foreach (ListItem li in branch.Items) 
{
     if(li.Selected)
     {
          branch_id.Add(Convert.ToInt32(li.Value));
     }
} 
List branch_id=newlist();
foreach(在branch.Items中列出项目li)
{
如果(li.选定)
{
分支id.Add(转换为32(li.Value));
}
} 
如果您使用的是.NET3.5或更高版本,并且可以使用LINQ,也可以使用这个

List<int> branch_id = branch.Items.Where(li=>li.Selected).Select(li=>li.Value).ToList();
List branch\u id=branch.Items.Where(li=>li.Selected).选择(li=>li.Value).ToList();

您无需初始化
列表分支\u id=new List()再次

如果初始化,它将为分支id创建一个新实例,并清除所有当前值

foreach (ListItem li in branch.Items) 
                {
                    if(li.Selected)
                    {

                        List<int> branch_id = new List<int>(); // during each time it loops it create new memory and you can't save all the values
                        branch_id.Add(Convert.ToInt32(li.Value));

                    }
                }



so do 

List<int> branch_id = new List<int>(); 
foreach (ListItem li in branch.Items) 
                {
                    if(li.Selected)
                    {


                        branch_id.Add(Convert.ToInt32(li.Value));

                    }
                } 
foreach(在branch.Items中列出项目li)
{
如果(li.选定)
{
List branch_id=new List();//每次循环时,它都会创建新内存,而您无法保存所有值
分支id.Add(转换为32(li.Value));
}
}
我也是
列表分支_id=新列表();
foreach(在branch.Items中列出项目li)
{
如果(li.选定)
{
分支id.Add(转换为32(li.Value));
}
} 
I曾经允许我使用LINQ简化选择:

var branch_id = branch.Items.WhereSelected().Select(i => Convert.ToInt32(i.Value)).ToList()

哦,我的天哪,每次一个新的物体被创造出来时,我都会用2。哦,是的,我想这不起作用。你的回答也很有帮助。谢谢