【问题标题】:Checking each element of a list and change it (C#)?检查列表的每个元素并更改它(C#)?
【发布时间】:2011-02-25 10:45:26
【问题描述】:

如何检查通用列表中的某个元素并在需要时更改它?

类似

list.WhatEever(l => l.TheElem == null ? l.TheElem = 1 : 0)

谢谢:-)

【问题讨论】:

标签: c# list


【解决方案1】:

如果你真的想为此使用一种方法,你可以使用ForEach,但只能在列表上使用(如果list 已经是List<T>,则不需要调用ToList):

list.ToList().ForEach(l => l.TheElem = l.TheElem == null ? 1 : 0);

我个人觉得只使用 foreach 循环更简单:

foreach(var l in list)
{
    l.TheElem = l.TheElem == null ? 1 : 0;
}

这有利于处理任何IEnumerable<T> 而不仅仅是List<T>

【讨论】:

  • @LukeH:很好的调用,但如果是值类型,我认为编译器会拒绝foreach 构造(不允许修改l)。
  • 不应该是l.TheElem = l.TheElem == null ? 1 : 0;吗?
  • @dkson:当然!是笔误,会改的。感谢您指出。
猜你喜欢
  • 2012-12-06
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 2021-11-09
  • 2017-04-08
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多