c#如何为foreach语句中的空值赋值?

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConsoleApplicat... using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
//Program mytest = new Program();
//Console.WriteLine(testing());

testing();
}

private static string testing()
{
//string sum = "";
string[] arr = new string[5];
arr[1] = "5";
arr[3] = "51";
arr[4] = "52";
foreach (string i in arr)
{
if (i=="")
{
i="空";
}

Console.WriteLine(i);

}
//return sum;
return arr.ToString();
}
}
}

调试的结果出错
提示为:“i是一个foreach变量,无法为它赋值”
展开
 我来答
Raiuy
2011-12-05 · TA获得超过2916个赞
知道大有可为答主
回答量:2210
采纳率:0%
帮助的人:895万
展开全部
foreach中不可对正在迭代的变量赋值

改成

for (int i = 0; i < arr.Length; i++)
{
if (arr[i] == "")
arr[i] = "空";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
涐会
2011-12-05 · TA获得超过123个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:124万
展开全部
//你可以用for代替foreach
private static string testing()
{
//string sum = "";
string[] arr = new string[5];
arr[1] = "5";
arr[3] = "51";
arr[4] = "52";
for (int i=0;i<arr.Length;i++)
{
if (string.IsNullOrWhiteSpace(arr[i]))
{
arr[i] = "空";
}
Console.WriteLine(arr[i]);

}
//return sum;
return arr.ToString();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1cbe3bad
2011-12-05 · 超过24用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:46.5万
展开全部
问题关键出在,你给 i 赋值,提示的已经很清楚了,
foreach中不可对正在迭代的变量赋值@Raiuy,是正解。
这种情况的正确做法,应该是用for循环,@涐会 的做法最好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帖元冬0hC259
2011-12-05
知道答主
回答量:73
采纳率:0%
帮助的人:24.2万
展开全部
经过的风格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-12-05
展开全部
i是个数组的下标 你怎么能给他赋值呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式