c# - 如何在foreach中引用实际元素?

标签 c# iteration

我使用以下代码逐步完成了IEnumerable。

IEnumerable<Thing> things = ...;
foreach (Thing thing in things)
  thing = method(thing);


编译器不同意它,因为我指的是迭代变量。当然,我打算改为影响列表中的基础对象。我怎么做?

现在,我使用了一个数值迭代来解决问题,但是这里有两个问题。一方面,恕我直言编码不好。除此之外,它要求我将我的东西从IEnumerable更改为IList(或者我应该使用List ?!),当事情变大时,它会咬在我的下背部。

//List<Thing> things = ...;
IList<Thing> things = ...;
for (int i = 0; i < things.Count(); i++)
  things[i] = method(things[i]);

最佳答案

您可以使用Linq投影序列:

 var transformedThings = things.Select(t => method(t));

关于c# - 如何在foreach中引用实际元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15476516/

相关文章:

c# - 用同一实体的不同实例替换上下文中的实体

vb.net - 对于 VB.NET 中二维数组上的每个循环

python - 迭代嵌套的 Python 字典

c# - 如何从 ASP.NET MVC 4 网站获取文件和表单值?

c# - DateTime.TryParseExact() 由于线程的文化信息而失败

c# - 如何测试.net web应用程序中哪个方法执行需要多长时间

c# - Entity Framework 5 删除问题 - 对象状态管理器问题

c# - 在c#中构建链表

java - 在没有数组变量的情况下迭代java中的静态数组

python - 使用 Python 查找元组中的所有常见元素和组合