0

我有这个实体。

   List<Option> lstoption1 = new List<Option>();
   Option opt = new Option();
   opt.OptionText = "Text1"; 
   lstoption1.add(opt)

   Option opt2 = new Option();
   opt2.OptionText = "Text2"; 
   lstoption1.add(opt2)


   Option opt3 = new Option();
   opt3.OptionText = "Text3"; 
   lstoption1.add(opt3)

我想将 OptionText="Text2" 选择到新的 Option.so 我写了这个。

  Option optnew =(from i in lstoption1 where i.OptionText ="Text2" select i) as Option

但它抛出一个错误。我们如何使用 linq 做到这一点。

谢谢你的帮助。

4

2 回答 2

0

就像在 if 语句中一样,您必须使用双 = 来表示相等。我对您的 LINQ 的调整未经测试,但应该接近您的需要。

Option optnew =((from i in lstoption1 where i.OptionText == "Text2" select i).SingleOrDefault()) as Option;

您需要表明您只期望 where 子句 (SingleOrDefault()) 提供一个结果。这意味着您将有一个结果,或者没有(null) - 由于您使用“as Option”进行强制转换,因此 null 值是有效的并且不会引发异常。

于 2012-07-03T08:02:53.307 回答
0
  1. 使用firstordefault()以便只返回一个元素。
  2. 使用==而不是=运算符

    Option optnew =(from i in lstoption1 where i.OptionText == "Text2" select i).firstordefault() 
    
于 2012-07-03T07:59:54.183 回答