社区首页 >问答首页 >中断foreach循环

中断foreach循环
EN

Stack Overflow用户
提问于 2011-01-27 16:10:06
回答 2查看 879关注 0票数 1

我需要帮助来调整一下我的逻辑。

如你所见,我有两个foreach loop,分别对应于网格视图中的不同列。此代码在网格视图中的OnRowUpdating中。要了解更多信息,您可以查看已关闭的线程here

问题是:

在每个循环中,我将更新一行到db,但是因为我有两个不同的循环,所以直到第一个循环结束它才会退出。

举个例子:我有_rpt.Count =2,所以它会在遇到第二个循环之前循环两次。

代码语言:javascript
代码运行次数:0
复制
GridViewRow row = gv.SelectedRow;           
Repeater _rpt = gv.Rows[e.RowIndex].Cells[8].FindControl("rptReg") as Repeater;
Repeater _rpt1 = gv.Rows[e.RowIndex].Cells[9].FindControl("rptVisitor") as Repeater;

foreach (RepeaterItem item in _rpt.Items)
{
    TextBox _txt = item.FindControl("txtId") as TextBox;
    TextBox _txt1 = item.FindControl("txtName") as TextBox;
    //update db
}

foreach (RepeaterItem item1 in _rpt1.Items)
{ 
    TextBox _txt3 = item1.FindControl("txtVisitor") as TextBox;
    //update db
} 

有没有一种方法可以读取两个foreach循环值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-27 16:33:03

如果您正在对多个集合进行循环,并且希望多次访问每个集合,那么foreach可能不是最合适的。

尝试使用常规的for循环:

代码语言:javascript
代码运行次数:0
复制
for (int i = 0; i < _rpt.Items.Count; i++)  
{  
    TextBox _txt = _rpt.Items[i].FindControl("txtId") as TextBox;  
    TextBox _txt1 = _rpt.Items[i].FindControl("txtName") as TextBox;

    if (_rpt1.Items.Count > i)
        TextBox _txt3 = _rpt1.Items[i].FindControl("txtVisitor") as TextBox;

    //update db
} 

上面的只会像预期的if (_rpt.Items.Count >= _rpt1.Items.Count)一样工作,所以一定要检查并使用具有最多项的集合,如果它们要有所不同的话。

使用foreach循环枚举单个集合中的项,从而允许您在每次迭代中直接引用每个项。如果您只访问一个集合,这很方便,因为您不需要使用数组索引器,只需使用您在循环初始化时给它的名称即可。

当您在循环多个集合时,它不是很方便,因为您只有一个对循环头部中使用的集合的引用。

通过使用for循环,您可以(使用int)跟踪您所处的索引位置,从而只需使用标准数组表示法来获取集合中的项。

票数 1
EN

Stack Overflow用户

发布于 2011-01-27 16:21:58

代码语言:javascript
代码运行次数:0
复制
foreach (RepeaterItem item in _rpt.Items)
{
    TextBox _txt = item.FindControl("txtId") as TextBox;
    TextBox _txt1 = item.FindControl("txtName") as TextBox;
    //update db

    TextBox _txt3 = _rpt1.Items[item.ItemIndex].FindControl("txtVisitor") as TextBox;

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4818759

复制
相关文章
一系列令人敬畏的.NET核心库,工具,框架和软件[通俗易懂]
原文地址:https://github.com/thangchung/awesome-dotnet-core
全栈程序员站长
2022/09/13
18.8K0
前后端分离项目模板
进入 demo-backend/src/main/resources 打开 application.yaml 文件修改数据源配置:
浪漫主义狗
2023/09/04
1880
前后端分离项目模板
Java 后端开发实践 - 项目模板
整理出一套公共性的项目模板,旨在尽量多地包含日常开发所需,减少开发者的重复性工作以及提供一些最佳实践。
芋道源码
2020/12/08
6480
Java 后端开发实践 - 项目模板
Blazor资源大全,很棒的Blazor(1)
Blazor允许您使用C#而不是JavaScript构建交互式Web用户界面。Blazor应用程序由使用C#、HTML和CSS实现的可重用的Web用户界面组件组成。客户端和服务器代码都是用C#编写的,允许您共享代码和库。 更多信息请参阅官方Blazor网站[22]。
用户10786849
2023/10/13
5660
Blazor资源大全,很棒的Blazor(1)
创建API服务最小只要4行代码!!!尝新体验ASP.NET Core 6预览版本中的最小Web API(minimal APIS)新特性
本文首发于《创建API服务最小只要4行代码!!!尝新体验ASP.NET Core 6预览版本中的最小Web API(minimal APIS)新特性》
Rector
2021/08/19
5.2K0
创建API服务最小只要4行代码!!!尝新体验ASP.NET Core 6预览版本中的最小Web API(minimal APIS)新特性
后端开发实践:Spring Boot项目模板
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为“第0个迭代”要做的事情。但是,当项目运行了一段时间之后再来反观,我总会发现一些不足的地方,要么测试分类没有分好,要么基本的编码架子没有考虑周全。
Java团长
2019/07/19
1.6K0
后端开发实践:Spring Boot项目模板
React项目配置6(前后端分离如何控制用户权限)
本教程总共6篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1、React项目配置1(如何管理项目公共js方法)---2018.01.11 2、React项目配置2(自己封装Ajax)---2018.01.12 3、React项目配置3(如何管理项目API接口)---2018.01.15 4、React项目配置4(如何在开发时跨域获取api请求)---2018.01.16 5、React项目配置5(引入MockJs,实现假接口开发)---2018.01.17 6、R
前端人人
2018/04/11
1.6K0
Rainbond 中Vue、React项目如何调用后端接口
通常我们会在项目的全局配置文件.env.production中直接写入后端ip,例如:
曾庆国
2020/11/19
1.5K0
.NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)
一、前言 本篇开发环境? 1、操作系统:CentOS7(因为ken比较偏爱CentOS7) 2、SDK版本:.NET Core 2.0 Preview 你可能需要的前置知识 1、了解如何通过Hyper-V安装CentOS虚拟机 2、了解CentOS7基础命令/常用命令 二、安装 .NET Core SDK 1、安装必要依赖 sudo yum -y install libunwind libicu 2、下载(SDK列表) cd /home/downloads curl -sSL -o dotnet-
KenTalk
2018/09/11
1.6K0
.NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)
一、前言 本篇开发环境? 1、操作系统: Windows 10 X64 2、SDK: .NET Core 2.0 Preview 二、安装 .NET Core SDK 1、下载 .NET Core 下载地址:https://www.microsoft.com/net/download/core 根据自己电脑情况选择对应版本即可 .NET CORE 2.0下载地址:https://aka.ms/dotnet-sdk-2.0.0-preview2-win-x64 2、安装 微软出品,一键安装,只需一步,看图
KenTalk
2018/09/11
1.6K0
.NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)
后端开发实践系列——Spring Boot项目模板
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为“第0个迭代”要做的事情。但是,当项目运行了一段时间之后再来反观,我总会发现一些不足的地方,要么测试分类没有分好,要么基本的编码架子没有考虑周全。
好好学java
2019/12/05
4390
后端开发实践系列——Spring Boot项目模板
别了,JavaScript;你好,Blazor
Web开发与JavaScript开发向来是同义词。直到WebAssembly的横空出世,WebAssembly (Wasm)是一种在浏览器中可以执行的二进制指令。 WebAssembly 的 官方工具链 能够编译 C/C++ 代码,但许多社区也提供了不同语言的编译器,如 Rust,Python,Java 和 Blazor(C#)。特别是 Rust 社区非常活跃,可以开始看到完整的前端框架,如 Yew 和 Dodrio,这为基于浏览器的应用带来了更多新的可能性,只要测试一些使用 WebAssembly 构建的优秀应用,就可知道基于浏览器的近乎原生的应用现在已经成为现实,例如 Sketchup 或 Magnum。
张善友
2020/06/19
3.1K0
别了,JavaScript;你好,Blazor
ApiTemplate:.net后端项目模板完善与总结
ApiTemplate后端项目开发模板,发布也有一段时间了。为了补充应用场景,以及详细说明本人总结的一些开发经验,现已常见的《用户/登录权限验证》功能模块来进行详细的讲解。我会以为开发此模拟的实现路径为主线进行说明,希望能帮助到某些开发朋友。
sam dragon
2020/06/29
5030
ApiTemplate:.net后端项目模板完善与总结
.NET周报【1月第3期 2023-01-20】
https://www.cnblogs.com/InCerry/p/building-a-self-contained-game-in-c-under-8-kilobytes-74c3cf60ea04.html
InCerry
2023/03/08
4.8K0
.NET周报【1月第3期 2023-01-20】
使用.NET Core+Docker 开发微服务
.NET Core发布很久了,因为近几年主要使用java,所以还没使用过.NET Core,今天正好有一个c#写的demo,需要做成服务,不想再转成java来实现,考虑使用.NET CORE来尝下鲜,目标是开发一个微服务,然后部署到Docker swarm集群,供其他应用调用。
JadePeng
2018/09/27
3.2K0
使用.NET Core+Docker 开发微服务
【周一通勤电台 · 特辑】六千字漫谈2022后端框架流行趋势
这篇文章基于我对后端框架的了解以及研究,提供了2021-2022年度以及未来一年内可能流行的后台框架。
翊君
2022/03/15
4.4K0
【周一通勤电台 · 特辑】六千字漫谈2022后端框架流行趋势
Meteor React Native 项目模板更新啦!
之前Spencer Carli曾发布了Meteor+React Native的项目模板,这个模板发布已经有3个多月了,并且有一些过时。作者最近重新构思了这个模板,让它更适合实际的项目而不仅仅是一个De
时见疏星
2018/06/01
9040
.NET周报 【6月第4期 2023-06-25】
https://www.cnblogs.com/eventhorizon/p/17497359.html
InCerry
2023/08/31
2980
.NET周报 【6月第4期 2023-06-25】
《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)
步骤1:在Visual Studio 2019中创建新的asp.net Core项目
角落的白板报
2019/05/05
3.9K0
《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)
《从零开始学ASP.NET CORE MVC》:VS2017创建ASP.NET Core Web程序(三)
步骤1:在Visual Studio 2017中创建新的asp.net Core项目
角落的白板报
2019/05/05
2.8K0
《从零开始学ASP.NET CORE MVC》:VS2017创建ASP.NET Core Web程序(三)

相似问题

DateTime与时间戳的比较

12

比较DateTime unix时间戳

10

无法将datetime.datetime与int进行比较;将datetime与unix时间戳进行比较

10

.Net DateTime.Now与PostgreSQL时间戳比较

319

MySQL:比较datetime和时间戳

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文