我需要将两个或多个字段相互匹配的项目组合在一起。我不确定如何做到这一点。
以下是一些示例数据:
TIME | TITLE | CHANNEL
---------+-------------------------+---------------
10:00 | Liverpool-Manchester | Viasat
10:00 | Liverpool-Manchester | Viasat HD
10:00 | Bla-debla | OtherChannel
10:00 | team1-team2 | SomeChannel
10:00 | team1-team2 | SomeChannel HD
我想将TIME
和TITLE
匹配的项目分组。如下所示。
首先分组的项目:
10:00 | Liverpool-Manchester | Viasat
10:00 | Liverpool-Manchester | Viasat HD
第二个分组的项目:
10:00 | Bla-debla | OtherChannel
第三个分组的项目:
10:00 | team1-team2 | SomeChannel
10:00 | team1-team2 | SomeChannel HD
知道怎么做到这一点吗?
答案 0 :(得分:4)
您可以使用
group x by new { x.Time, x.Title}
答案 1 :(得分:3)
假设您输入的是DataTable
。
var dataQ = from row in data.AsEnumerable()
group row by new {
time = row.Field<DateTime>("time"),
title = row.Field<String>("title")
} into GrpTimeTitle
select new {
Time = GrpTimeTitle.Key.time,
Title = GrpTimeTitle.Key.title,
Count = GrpTimeTitle.Count(),
FirstChannel = GrpTimeTitle.First().Field<String>("channel")
};
答案 2 :(得分:1)
请尝试以下方法:
from c in collection
group c.Title by new {c.Title,c.Time} into t
where t.Count()>1
select t;
如果要按多个属性分组并在其中指定属性,则需要引入新的匿名类型
未经测试但应该有效。