2016-08-13 10 views
-1

BoardにはOverallPartyResultsのリストが含まれています。Linqは期待どおりに動作しません

OverallPartyResultsのプロパティは、リスト内では異なるはずですPartyNameです。

私はボードが同じコードでOverallPartyResultsが含まれていない場合にのみ、新しいOverallPartyResultsを追加する必要があり、リストにOverallPartyResultsを追加するためのロジックを記述しようとしています。

私が書いていLINQの式は次のとおりです。私は同じコードで、リスト内のOverallPartyResultsを取得していますよう

if (!Board.Select(i => i.PartyCode).Contains(party.PartyCode)) 
{ 
     var newPartyResult = new OverallPartyResults() 
     { 
      PartyCode = party.PartyCode.Trim(), 
      NumberOfSeats = seatNumber 

     }; 
     Board.Add(newPartyResult); 
} 

式が間違っている - 私は間違っているつもりどこ誰でも見ることができますか?

+1

このBoard.Select(i => i.PartyName).ToList()。Contains(party.PartyCode) 'を試しましたか? – Mostafiz

+0

いくつかのブレークポイントを置いて、物事の価値を調べてみましたか? –

+1

.Contains(party.PartyCode.Trim())を試してみてください。恐らく空白で騙されているかもしれません。 –

答えて

3

私はTrim()と考えています。あなたが先頭またはPartyCodeの末尾にスペースを持っているなら、あなたはこのようにPartyCode

書き換え、それを複製取得します:

if (!Board.Any(i => i.PartyCode == party.PartyCode.Trim())) 
{ 
     var newPartyResult = new OverallPartyResults() 
     { 
      PartyCode = party.PartyCode.Trim(), 
      NumberOfSeats = seatNumber 

     }; 
     Board.Add(newPartyResult); 
} 

利用Any()の代わりSelect(...).Contains()。すべてのパーティコードをデータベースから退去させています(LINQからBDを使用している場合)。 AnyWHERE EXISTSに、魔女ははるかに優れています(パフォーマンスは賢明です)。

関連する問題