我想在list<int>不使用for循环或foreach循环的情况下加3到所有成员?我能在一行中做到这一点吗?怎么样?
Jon*_*eet 14
某个地方的东西必须循环.你不必循环中的代码,但是有什么地方将不得不.
我无法想到任何会修改列表中所有元素的方法,但使用LINQ可以轻松创建一个新 元素List<int>:
var plusThree = originalList.Select(x => x + 3).ToList();
Run Code Online (Sandbox Code Playgroud)
或LINQ之前(稍微更有效,但也更List<T>具体):
var plusThree = originalList.ConvertAll(x => x + 3);
Run Code Online (Sandbox Code Playgroud)
但这两个都将在幕后循环.
您可以创建一个投影IList<T>实现,懒惰地应用投影(或者如果您想真正想要的话可能是双射)......但这将是大量的工作.