2016-10-21 2 views
1

Convertを2回呼び出すことなく、バリアント型のabcを使用することはどういうことですか?私はデフのような意味ですが、第二のものはありませんか?LINQ:選択結果はどこにありますか?

ような何か:

var desired = (from x in AnswerRecords 
       select Converter(x) as bla 
       where bla != null 
       ).ToList(); 
+1

95と同様%はあなたが求めているものとは何の関係も*を*していません。完全に無関係のコードを大量に含むべきではありません。 – Servy

答えて

3

あなたのケースは、正確にletキーワードの使用に適しています。

Converterの結果を格納し、それを確認するためにそれを使用する:この質問の内容の

var result = from item in AnswerRecords 
      let converted = Converter(item) 
      where converted != null 
      select converted; 
0

あなたがチェーンメソッド呼び出し構文を使用すると、簡単に呼び出しをチェーンすることができます...

AnswerRecords.Select(x => Converter(x)).Where(x => x != null).ToList(); 

そしてさらに短い:

AnswerRecords.Select(Converter).Where(x => x != null).ToList(); 

編集:

var desired = (
     from y in (
      from x in AnswerRecords 
      select Converter(x) 
     ) 
     where y != null 
     select y 
    ).ToList(); 
+0

いいえ、私はチェーン型のメソッド呼び出し構文ではなく、SQLスタイルのlinqが必要です。 – User1

+0

@ User1編集済みですが、それ以上の読み込みができませんIMHO。 – Lucero

+0

これは既に私が持っているものです。私は(AnswerRecords select Converter(x)のxから)解決するつもりです。ここで(x => x!= null).ToList(); – User1

関連する問題