2012-02-17 59 views
1

Hy Guys!如何用linq選擇列表中的複製項目?

我有一個列表可能有複製項目的「ObjDay」。我如何選擇它們?

ObjDay是:

Public class ObjDay 
     _date 
     ... 
    End Class 

我試圖做的:

replicatedItems = From d In ObjDaysList _ 
       Order By d._date _ 
       Group d By d._date Into newGroupOfObjDays = Group _ 
       Where newGroupOfObjDays.Count > 1 _ 
       Select newGroupOfObjDays 

但我發現了這個錯誤:

Can't convert object of type 'WhereSelectEnumerableIterator 2[VB$AnonymousType_0 2[System.DateTime,System.Collections.Generic.IEnumerable 1[ObjDay]], System.Collections.Generic.IEnumerable 1[ObjDay]]' in type 'System.Collections.Generic.List`1[ObjDay]'.


韓國社交協會的幫助!

+0

是不是日期類型?你不應該爲它分配一個實際的變量名嗎? – Scottie 2012-02-17 18:55:42

+0

Scottie,它是從Portuguse翻譯的。 「日期」是一個變量。 – Thiago 2012-02-17 18:58:10

回答

0

您正在選擇組,並嘗試將其分配給List(Of ObjDay)。這是行不通的。你可以這樣做:

'Get groups of duplicate items 
Dim groups = From d In ObjDaysList _ 
      Order By d._date _ 
      Group d By d._date Into newGroupOfObjDays = Group _ 
      Where newGroupOfObjDays.Count > 1 _ 
      Select newGroupOfObjDays 

'Get all items from these groups with SelectMany 
replicatedItems = groups.SelectMany(Function(item) item).ToList 
+0

我創建了一個測試程序,它確實獲得了所有複製項目......想不到爲什麼會得到不同結果的原因...... – 2012-02-17 19:50:03

相關問題