首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

一个简单的有关问题,关于foreach

2011-12-14 
一个简单的问题,关于foreach我把问题简化了,问题模型如下C# codeListint lstnew Listint()lst.Add(1

一个简单的问题,关于foreach
我把问题简化了,问题模型如下

C# code
    List<int> lst=new List<int>();    lst.Add(1);    lst.Add(3);    lst.Add(5);    lst.Add(7);    //希望执行以下修改:如果整数大于3,则将整数增加10,否则保持不变。    lst.ForEach(c=>c=c>3?c+10);    //得到的结果期望是lst的元素值:1,3,15,17    


这里的元素只是一个整数类型,实际应用中元素是一个实体类型。

[解决办法]
list.Where(c => c > 3).ToList().ForEach(delegate(int i) { Console.WriteLine(i + 10); });



ForEach对 List 的每个元素执行指定操作,但并不能改变元素。

你要么就用for去改变元素
[解决办法]
foreach 的元素是只读的。
[解决办法]
貌似是因为是值类型的原因,如果是引用类型就可以
[解决办法]
探讨
foreach 的元素是只读的。

[解决办法]
C# code
    List<int> lst = new List<int>();            lst.Add(1);            lst.Add(3);            lst.Add(5);            lst.Add(7);            //希望执行以下修改:如果整数大于3,则将整数增加10,否则保持不变。            //lst.ForEach(c=>c=c>3?c+10);            //得到的结果期望是lst的元素值:1,3,15,17             List<int> lstTemp = new List<int>();            lst.ForEach(delegate(int argInt)            {                if (argInt > 3)                    lstTemp.Add(10 + argInt);                else                    lstTemp.Add(argInt);                            }); 

热点排行