我有一種方法,通過LINQ限制列表中的項目。該列表包含具有兩個布爾屬性的項目:bool_a和bool_b。該列表包含bool_a爲true且bool_b爲false的項目以及兩者均爲false的項目。意外的結果LINQ Where子句
我的期望是,一旦我限制了列表,只有bool_a爲false的記錄將保留,而bool_a和bool_b都爲false的所有項目都將被刪除。但是,我發現所有項目都被刪除。就好像AND運算符表現得像一個OR。
下面是一個例子。我沒有看到什麼?
var records = GetRecords();
var count_where_a_before = records .Where(x => x.bool_a); // 100 items
var count_where_ab_before = records .Where(x => x.bool_a && x.bool_b); // 10 items
records = records.Where(x => !x.bool_a && !x.bool_b);
var count_where_a_after = records .Where(x => x.bool_a); // 0 items
正如你從上面看到的,我一直在where子句之前和之後使用計數來評估列表。
我不知道這是沒有數據樣本和相應的查詢結果回答的。 –
而「問題陳述」有點奇怪的措辭。 – user7116