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

songbaobao123456789 2011-12-05 02:55:46
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变量,无法为它赋值”
...全文
302 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
herminen 2011-12-05
  • 打赏
  • 举报
回复
foreach不行的
netboool 2011-12-05
  • 打赏
  • 举报
回复
只能用for循环,因为foreach是用迭代器遍历给定的集合的所有元素,迭代器是只读的
xingxingbanyue 2011-12-05
  • 打赏
  • 举报
回复
for循环可以有条件判断。
foreach是遍历给定的集合的所有元素,是只读的,不允许修改集合中的元素
全国话费充值 2011-12-05
  • 打赏
  • 举报
回复
string[] arr = new string[5];
arr[1] = "5";
arr[3] = "51";
arr[4] = "52";
arr = (from string _string in arr select (_string ==null?"空":_string)).ToArray();
全国话费充值 2011-12-05
  • 打赏
  • 举报
回复
string[] arr = new string[5];
arr[1] = "5";
arr[3] = "51";
arr[4] = "52";
int ii = 0;
foreach (string i in arr)
{
if (i == "")
{
arr[ii] = "空";
}
ii++;
}
小火龙果 2011-12-05
  • 打赏
  • 举报
回复
晕 当然不行了 要不你就用for 要不你就先记住索引 然后再一起赋值
遥望那些年 2011-12-05
  • 打赏
  • 举报
回复
foreach遍历只能修改对象属性,不能修改整个对象
thinkingforever 2011-12-05
  • 打赏
  • 举报
回复
for (int i =0;i<arr.lenght,i++)
{
if (arr[i]=="")
{
arr[i]="空";
}

Console.WriteLine(i);

}
bdmh 2011-12-05
  • 打赏
  • 举报
回复
你还是用for(int i=0;i<arr.Length;i++)吧

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧