1

LINQクエリがあります:

 var result = (from CC in hc.ClaimCodings
                              join CM in hc.ClaimCodingProcedureCodeModifierXrefs on CC.ClaimCodingID equals CM.ClaimCodingID
                              join PCM in hc.ProcedureCodeModifiers on CM.ProcedureCodeModifierID equals PCM.ProcedureCodeModifierID
                              where CC.CTCustomerSubID == custSub && CC.ClaimID == claimID
                              select new { PCM.ModifierCode });

編集

これは0から4のアイテムを返すことができます。各修飾子コードの値をプロパティに設定したい:

     public string ModCode1 { get; set; }

    public string ModCode2 { get; set; }

    public string ModCode3 { get; set; }

    public string ModCode4 { get; set; }

    Modcode1 = result.ModifierCode.getindex(0).firstordefault();

ModeCode2 = second result's ModifierCode;

etc 

etc

私がこれに完全に間違ってアプローチしていない限り。私はまだLINQが苦手です:(

4

2 に答える 2

3

これはあなたが念頭に置いていることですか?

var result = 
(
   from CC in hc.ClaimCodings
       join CM in hc.ClaimCodingProcedureCodeModifierXrefs 
           on CC.ClaimCodingID equals CM.ClaimCodingID
       join PCM in hc.ProcedureCodeModifiers 
           on CM.ProcedureCodeModifierID equals PCM.ProcedureCodeModifierID
   where CC.CTCustomerSubID == custSub && CC.ClaimID == claimID && 
         PCM.ModifierCode != null
   select PCM.ModifierCode
).ToList();

ModCode1 = result.Length > 0 ? result[0] : null;
ModCode2 = result.Length > 1 ? result[1] : null;
ModCode3 = result.Length > 2 ? result[2] : null;
ModCode4 = result.Length > 3 ? result[3] : null;

主な変更点:

  • PCM.ModifierCode != nullLINQ クエリ内にチェックを追加しました。
  • 冗長な匿名型の構造を削除しました。
  • LINQ クエリの結果をList<string>throughに変換しましToList()た。

ただし、BrokenGlass が言ったように、おそらくリストを保存する方がよいでしょう。

于 2012-05-07T18:31:20.030 に答える
1

結果に対して ToArray() を呼び出して、クエリをすぐに実行し、値の配列を返すことができます。次に、配列の長さをチェックする some 三項演算子の短縮形を使用して、プロパティに値を割り当てることができます。

res = result.Take(4).ToArray();
Modcode1 = res.Length > 0 ? res[0] : null;
Modcode2 = res.Length > 1 ? res[1] : null;
Modcode3 = res.Length > 2 ? res[2] : null;
Modcode4 = res.Length > 3 ? res[3] : null;
于 2012-05-07T18:32:27.097 に答える