C#从表单拼接字符串提取指定元素并入库问题求助
问题解决:从Request.Form提取指定内容并按规则处理
场景说明
我用以下C#代码从Request.Form中提取包含"ddl"的项并拼接成字符串:
List<string> value1 = new List<string>(); foreach (string item in Request.Form) { if (item.Contains("ddl")) { value1.Add(Request.Form[item]); } } ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('value1:\n" + string.Join(",", value1) + "');", true);
执行后输出的字符串为:
Dispatching System,proposal,to be sent,main,2022-006,related,2022-017,related
现在需要从该字符串的第5个元素开始提取后续内容(即2022-006,related,2022-017,related),并将每两个元素作为一行存入数据库,对应表格如下:
| t | q |
|---|---|
| 2022-006 | related |
| 2022-017 | related |
期望输出格式为:
2022-006 related 2022-017 related
错误代码问题
我当前编写的代码输出为空,代码如下:
List<string> value1 = new List<string>(); foreach (string item in Request.Form) { if (item.Contains("ddl")) { value1.Add(Request.Form[item]); List<string> value2 = item.Split(',').ToList(); for (int i = 4; i < value2.Count; i++) { //Insert into db Response.Write(value2[i] + "<br />" + value2[i + 1] + "<br /><br />"); i++; } } }
问题核心:循环中错误地对表单字段名item进行拆分,而非对拼接后的完整目标字符串拆分,导致无法获取所需内容。
解决方案代码
List<string> value1 = new List<string>(); foreach (string item in Request.Form) { if (item.Contains("ddl")) { value1.Add(Request.Form[item]); } } var requestDLL = string.Join(",", value1); var value2 = requestDLL.Split(','); for (int i = 4; i < value2.Length; i++) { //Insert into db Response.Write(value2[i] + "<br />" + value2[i + 1] + "<br /><br />"); i++; }
正确输出
2022-006 related 2022-017 related
内容的提问来源于stack exchange,提问作者George A. Custer
相关产品推荐
相关产品推荐

