2016-05-11 4 views
-1

C#のLINQチェック既存の値

var emailList = new List<string> {payload.Email}; 

次に、私が帰国していた中でVARを作成します

var allRegisteredUsersEmailAdresses = new List<string>(); 

どの方法(LINQの)で私は2番目の変数は、最初の1が含まれている場合に比較することができます。これまでのデータベース内にあることthaの既存の電子メールのリスト?与えられたメールは第二のリストに存在する場合たとえば、VARのvaluefound =他の真のvar valuefoundを設定= falseを

は交差を使用して、あなたに

+3

ルック。 –

+0

@CraigW。 IMOはここではあまり適していませんが、[except](https://msdn.microsoft.com/en-us/library/bb908822(v=v290).aspx)やintersectを使う方が簡単でしょう。 – pasty

+0

@pasty交差点があるかどうかを知る必要がある場合は、「例外」または「交差点」があまりに高価になります。 – Xiaoy312

答えて

4

、登録ユーザーのいずれかが電子メールのリストに含まれている場合: `Contains`方法で

allRegisteredUsersEmailAdresses.Any(registeredUser => emailList.Contains(registeredUser)) 
+0

だから、 "x"ではチェックしたい値を置く必要がありますか? **私の心の中ではっきりしない** – George

+0

'x 'は' => 'と共にラムダ関数であり、登録されたユーザーのすべてのメンバーに適用されます。あなたがそれを理解するのに役立つならば、あなたは 'registeredUser'としてそれを見ることができます。 – Xiaoy312

+0

回答していただきありがとうございます(私はあなたが私にとってより明確になるように修正したことに気付きました)。 breakepointを配置し、 "Count = 1"をレスポンスとして得たので、1レコードが見つかったか、または1 = true 0 = false(ダミー質問)ですか? – George

3

ありがとうございます。文字通り

var intersect =first.Intersect(second).ToList(); 

intersectのカウントが0であれば、その後、valuefound=false

+0

私はこの方法でアプローチするつもりです – George

+0

リストを作成し、その '.Count()'にアクセスして '0'と比較する必要はありません。単に 'first.Intersect(second).Any()'で十分です。 – Xiaoy312

関連する問題