2013-05-16 66 views
0

我無法確定在「去哪兒」條款去下面的LINQ查詢子句:凡在LINQ方法語法

Dim counts = eDTKBase.AsEnumerable(). _ 
       GroupBy(Function(r) r.eDTK_PLI.). _ 
       Select(Function(g) New With { _ 
         .PLI_Code = g.Key, _ 
         .CountPDP = g.Select(Function(r) r.eDTK_PDP_Code.). _ 
         Distinct(). _ 
         Count() _ 

我想在where子句來篩選記錄在計數> 1。誰能幫忙?謝謝。

+0

做什麼?如果是這樣,你可以使用'.First()'。如果你想用'r.count'過濾,你可以使用'Where()'來做到這一點。 – ManojRK

+0

不,我需要過濾掉所有記錄數大於1的記錄。我知道我需要使用Where子句,我只是不知道在哪裏放置它或者在這種情況下適當的語法。 – StephenT

+2

什麼*的計數*是'1'?你的意思是'.CountPDP'?你不清楚。 –

回答

2
Dim counts = eDTKBase.AsEnumerable(). _ 
       GroupBy(Function(r) r.eDTK_PLI.). _ 
       Select(Function(g) New With { _ 
         .PLI_Code = g.Key, _ 
         .CountPDP = g.Select(Function(r) r.eDTK_PDP_Code.). _ 
         Distinct(). _ 
         Count() ... 
       }).Where(Function(w) w.CountPDP > 1) 

要獲得總數爲要求在評論你想採取從列表中的第一個記錄

Dim counts = eDTKBase.AsEnumerable(). _ 
        GroupBy(Function(r) r.eDTK_PLI.). _ 
        Select(Function(g) New With { _ 
          .PLI_Code = g.Key, _ 
          .CountPDP = g.Select(Function(r) r.eDTK_PDP_Code.). _ 
          Distinct(). _ 
          Count() ... 
        }).Where(Function(w) w.CountPDP > 1).Sum(Function(s) s.CountPDP) 
+0

謝謝穀神星,但沒有過濾任何東西,任何其他的想法? – StephenT

+1

您的不完整代碼清單有點令人困惑。我更新了答案。 – Ceres

+0

太棒了,非常感謝Ceres! – StephenT