1

正しく取得できない linq クエリを実行しようとしています。

Occurrences というカスタム クラスのリストがあります。このクラスには、String としての Code と Boolean としての Negative の 2 つのプロパティがあります。コードの正味合計 (コードごとにグループ化) を取得しようとしているので、これは、負 = 偽 (すべて正) のコードの数になり、負 = 真 (すべて負) のコードの数を減算します。Occurrences クラスには数量がなく、各出現は 1 つの負または正としてカウントされます。

これを 3 つの個別のクエリで実行しようとしましたが、うまくいきませんでした。理想的には、これを 1 つのクエリで実行したいと考えています。

より良い説明が必要な場合、または不明な場合はお知らせください。

編集:サンプル入力/出力

入力:

Code       Negative
-------------------
123        True
123        True
123        False
456        True
456        True
456        True
789        False
789        False

出力:

Code       Count
----------------
123        -1
456        -3
789        +2
4

3 に答える 3

2
from item in data
group item by item.Code into g
select new { Code = g.Key, Count = g.Sum(x => x.Negative ? -1 : 1) }
于 2013-06-10T14:12:27.987 に答える
0
Dim netTotal = From o In Occurrences
               Group By o.Code
               Into Sum(If(o.Negative, -1, 1))
于 2013-06-10T15:16:29.010 に答える