2016-12-03 5 views
0

有用なコミュニティに!私はこの結果と手順を持っている私につらい時フィルタC#エンティティリスト

を与えるC#のエンティティ/ SQL Serverの2014年のプロジェクトでの問題は、私がリストを持って、私のC#プログラムでは

OnDate   RoomType Available RateCode Price 
2016-12-12  DBL   2   BAR  200 
2016-12-12  TRP   4   BAR  300 
2016-12-12  DBL   2   NEW  250 
2016-12-12  TRP   4   NEW  350 

を設定している

ガイズその手順からEntyity Frameworkを介して供給されたもの

別のプロシージャと別のリストを作成しないようにするために、私のニーズに応じて、C#内のリスト結果を次のように変換する方法がありますか?

OnDate   RoomType Available RateCode Price 
2016-12-12  DBL   2      0 
2016-12-12  TRP   4      0 

だから、基本的には同じ結果であるが、空RateCodeとDISTINCTおよび= 0

価格は、私は私の処理のために、両方の結果セットが必要です。私は事前にありがとうをループのために行うと、私は最初の結果で立ち往生していた場合、私はRateCodesが存在するとして、私は多くのtmesと同じ部屋タイプになるだろう唯一RoomType可用性を必要とするときには受け入れられない

for (int Row = 0; Row < myList.Count(); Row++) 
{ 
    blah 
} 

をXMLSを移入します!

+0

なぜ価格は0にしてください?おそらく2行の合計である必要がありますか?また、RateCodeを選択する必要があります。 – mybirthname

+0

Distinct RoomTypesを取得するためには0にする必要があります - 利用可能なRateCodeを変更しない可用性。 – PanosPlat

+0

あなたのコレクションのためにGroupByでそれを行うことができます。私はあなたにそれを行う方法を書きます。 – mybirthname

答えて

1

これは、あなたの希望するリストを返します。あなたはあなたのコレクションをRoomTypeとAvailableでグルーピングしています。その後はSelectのデータが必要です。

var result = myList.GroupBy(x => new { x.RoomType, x.Available }) 
        .Select(g => new Hotel { 
              OnDate = g.First().OnDate, 
              RoomType = g.Key.RoomType, 
              Available = g.Key.Available, 
              RateCode = "", 
              Price = 0 }) 
        .ToList(); 

ここでは完全なコード例:dotNetFiddle

+0

が優れています。ありがとうございました – PanosPlat

関連する問題