我有一个列表(sourceList
),例如:
id price1 price2 Data
---------------------------------
12 88 222 1
12 88 222 4
12 66 234 4
我需要按以下三列分组:id
,price1
,price2
。
列Data
没有任何意义。
我需要获取这个新列表:
id numOfAds price1 price2
----------------------------------
12 2 88 222 -> 2 cause there are two simmilar ads with the same price 1 and 2
12 1 66 234
所以我试过了:
Dim oResult = sourceList.GroupBy(Function(v) New With
{Key v.id, Key v.price1, Key v.price2}).ToList()
但我不知道如何计算相等的行..
编辑:
也许是这样的?
Dim sums = sourceList.GroupBy(Function(x) New With {Key x.id, Key
x.price1, Key x.price2}) _
.Select(Function(group) New With {Key .Peo = group, Key .NumOfAds = group.Count()})
任何帮助表示赞赏!
答案 0 :(得分:1)
我认为您的问题可能是New with
语句。
试试这个
Dim sums = sourceList.AsEnumerable().GroupBy(Function(x) x.Field(Of String)("YourField")).Where(Function(g) g.Count() > 1).Select(Function(g) g.Key)
This SO thread也可能对您的需求有所帮助。