Linq:ForEach看起来像是不同的行为

时间:2014-08-08 08:08:39

标签: c# linq

我在Linq遇到了问题。

我有下一堂课:

public class product {
  public int nserie {get; set;}
  public bool seleccionado {get; set;}
}

我有一个产品列表,我有一个带有输入复选框的列(根据seleccionado设置值)和列nserie。

当我检查标题中的按钮全部检查时,我正在执行此循环:

pedidos.ForEach(x => { if (x.NSerie == nserie) { x.seleccionado = true; } });

看起来它不起作用,循环的行为如果很奇怪。

有什么问题?

期待这个:

 public static int MarcarCheckBox(string nserie, bool valor) 
 {
    ...
    foreach (TarjetaActivar pedido in pedidos) 
    {
        if (nserie == "") pedido.seleccionado = true;
        else pedido.seleccionado = valor;
    }
    ...
 }

valor是一个布尔值。

2 个答案:

答案 0 :(得分:0)

您没有在linq foreach中执行else子句。试试这样:

  pedidos.ForEach(x => { if (x.nserie == "") { x.seleccionado = true; } else {x.seleccionado = valor } });

答案 1 :(得分:0)

简化为:

pedidos.ForEach(p => p.seleccionado = (nserie == "" || valor))