2012-04-04 15 views
0

を動作していませんNoteは "Do not return"で始まり、Typeは "Ext"です。LINQクエリは、私は次のクエリを持って

私のクエリのようなものは、何も返さないので間違っています。

+3

をお試しくださいあなたが実際にやろうとしていることをやっているうちに、あなたがしようとしていることをもう少し詳細に説明する必要があると思います。 –

+0

はもっと詳しい情報を必要とし、クラスを提供し、あなたはこれをEF、NHB、コレクションから呼び出すのです...我々はもっと情報が必要です。 – CrazyDart

答えて

0
var intMessages = from tl in resultlist 
        where tl.Message.StartsWith("Do not return") 
         && tl.Type == "Int" 
        select tl; 
var extMessages = from tl in resultlist 
        where tl.Message.StartsWith("Do not return") 
         && tl.Type == "Ext" 
        select tl; 

var intAndExtMessages = intMessages.Any() && extMessages.Any(); 

これが結果にいくつか同じ結果セットに"Int"で始まるメッセージが「内線」で始まる他のいくつかのメッセージで「返さない」がある設定されていることを確認します

ソース・エレメントがいくつかの要件を満たしているかどうかをチェックするので、同じオブジェクトのタイプが「Int」であり、「Ext」が不可能であることをチェックすると、2つのストリング値同じ時に。

一方、結果リストに2つの異なるタイプのアイテムがあるか、2つの排他的な条件があるかを調べる必要があるため、これは1回の繰り返しでは実行できません(各LINQクエリは終わり..)。

+0

彼はtl.Note.StartsWithとEXTまたはtl.Message.StartsWithとINTを探していたようです。これは、質問に応じて彼に偽の結果を与えるだろう。 –

+0

@RyanBennett、ここでの重要なフレーズは "と別のメッセージがあります" –

1

& &を||に変更しますか?上記のコメント(Joachim Isaksson)の1つが指摘しているように。 1つのエンティティで2つの異なる方法で存在するプロパティ(.Type)を求めています。それは不可能です。

あなたは「INT」と「内線」の両方を持つ `tl.Type`を比較し、それが助けを得るために(それが自然にできない)の両方でない限り、結果を返すいない

req= (from tl in resultlist 
    where (tl.Message.StartsWith("Do not return") && tl.Type == "Int") || 
    (tl.Note.StartsWith("Do no return") && tl.Type == "Ext") 
    select tl).Any();