3
IEnumerable<WireUsrTgInfo> lstWireData = 
    (from var in lstWireUsrTgInfo
     where var.bWireData == true && var.bWireData == false --> This is not working
     select var).AsEnumerable<WireUsrTgInfo>();

これを行う方法 ...

4

5 に答える 5

5

提供されたコードによると

var.bWireData == true && var.bWireData == false 

同じ変数が両方の反対の値と等しくなることはできないため、機能しません。

これをパラメータ化する必要がある場合は、次のように実行できます。

bool expectedValue = true; //OR False
IEnumerable<WireUsrTgInfo> lstWireData = (from var in lstWireUsrTgInfo
            where var.bWireData == expectedValue
            select var).AsEnumerable<WireUsrTgInfo>();

編集

クエリでは使用しないでくださいvar。これは文脈上の (Monkieboy が説明する)C#キーワードです。明確にするために、使用できます、混乱を招くため、使用しないでください。

于 2012-11-07T13:22:51.260 に答える
3

bWireDatatrue と false の両方にすることはできません。あなたの論理には欠陥があります。

于 2012-11-07T13:22:17.987 に答える
2

他の回答が述べたように、フィルター条件が間違っています。しかし、私が追加したいことが他にあります:

trueブール データをまたはと比較しないでくださいfalse。ブールデータは、実際には質問に対する答えtrueです。

var query = from info in lstWireUsrTgInfo
            where info.bWireData // selects data which is true
            select info;

varキーワードです。

また、変数名にプレフィックスを使用しないでください (代わりに、より適切な名前付けを検討してください - HasWireData, wireUserTagInfos)。

于 2012-11-07T13:26:16.243 に答える
0

これは決して機能しません: WHERE bWireData == true && bWireData == falsebWireData が同時に true と false の両方になることはできないため、非論理的です。

varはキーワードであるため、混乱を避けるために変数の名前として使用しないでください。

于 2012-11-07T13:24:07.943 に答える
0

&& は正しい演算子です。しかし、他の投稿者が指摘しているように、あなたの質問はそのままでは「オバマが大統領で、オバマが大統領でないなら私を幸せにしてください」と言っているのと同じです。基本的に、矛盾を設定しました。これは常に false と評価されるため、結果は返されません。余談ですが、&& は条件付 AND であることに興味があるかもしれません。つまり、第 2 項は第 1 項が true の場合にのみ評価されるため、結果が必然的に false の場合に第 2 項の処理を省略できます。

于 2012-11-07T15:34:17.407 に答える