2016-12-01 12 views
0

非常に簡単な言葉で言えば、特定の状況で変数に文字列を割り当てる必要があります。私はif文をグローバル変数のlinq文の外側に置こうとしましたが、if/thenを実行して文字列を変数に代入し、Excelファイル内の各行に対して出力します生産された。だから、If/Then Linq文

どのように私はあなたが(悪名高い)三項演算子を使用することができ、この

return _db.Owners 
    .Select(owner => new 
     { 
      CustomerId = owner.Report.CustomerId, 
      IdType = status,//I want this statement to print that status S only where the statement is true 
     } 
+0

あなただけのステータス= Sとアイテムが欲しいですその場合は* print *だけを必要としますか? – BradleyDotNET

+1

私はあなたが正しいかどうか分かりません。あなたが 'Item1!= null'と' Item2 == null'を持つ 'owner'オブジェクトだけをステータスSで印刷したいのですか?他のレコードはどうですか?彼らのステータスはどうですか? –

答えて

3

私はIdTypeが文字列であると仮定します。これは、文が偽であれば空にします。 2番目のケースを追加したい場合は、あなたがこれを行うことができ

return _db.Owners 
    .Select(owner => new 
     { 
      CustomerId = owner.Report.CustomerId, 
      IdType = (owner.Item1 != null && owner.Item2 == null) ? "S": string.Empty, 
    } 

UPDATE :その場合は、あなたがこれを使用することができ

return _db.Owners 
    .Select(owner => new 
     { 
      CustomerId = owner.Report.CustomerId, 
      IdType = (owner.Item1 != null && owner.Item2 == null) 
        ? "S" : ([second case condition] ? [value] : string.Empty), 
    } 
+0

2番目のケースを追加したい場合は、後に書いてください:?? – BlowFish

+0

@BlowFish、私の更新を見てください。 –

+1

ありがとうございます! – BlowFish

1

に似ています私のLINQステートメントにこの

var status = ""; 
if(_db.Owners.Select(i => i.Item1) != null && _db.Owners.Select(i => i.Item2) == null) 
      { 
       status = "S"; 
      } 

のような文を入れてやる?

new { 
    CustomerId = owner.Report.CustomerId, 
    IdType = yourTestExpressionFromTheIfAbove ? "S" : string.Empty 
} 

あなたが求めていることはありますか?式をインライン化して、外部(一時的な)変数を削除したいだけですか?

0

私はこのようなものだろう:[あなたの他の値が]レコードはあなたの条件を満たさない場合は、好きな状態である

return _db.Owners 
    .Select(owner => new 
    { 
     CustomerId = owner.Report.CustomerId, 
     IdType = owner.Item1 != null && owner.Item2 == null ? "S" : [your other value] 
    }) 
    .ToList(); 

を。