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. に選択したいので、これを書きました。

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

しかし、エラーがスローされます。linq を使用してこれを行うにはどうすればよいでしょうか。

助けてくれてありがとう。

4

2 に答える 2

0

ifステートメントの場合と同じように、等式にはdouble=を使用する必要があります。LINQに対する私の調整はテストされていませんが、必要なものに近いはずです。

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

where句(SingleOrDefault())から1つの結果のみを期待していることを示す必要があります。これは、単一の結果が得られるか、または得られない(null)ことを意味します。「asOption」を使用してキャストしているため、null値は有効であり、例外はスローされません。

于 2012-07-03T08:02:53.307 に答える
0
  1. firstordefault()1つの要素のみが返されるように使用します。
  2. 演算子==の代わりに使用=

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