1

我有一个返回三个数据元素的 Linq 查询。

var billingDateResults = from s in Subscriptions
            .Where(s => (s.ProductCode.Contains("myCode")))
      select { g.ID, BillingDate =s.BILL_THRU, s.ProductCode};

我想对此进行不同类型的查询,以将结果限制为每个 ID 一条记录。

var billingDateResults = from s in Subscriptions
            .Where(s => (s.ProductCode.Contains("myCode")))
group s by s.ID into g
select g.FirstOrDefault();

这可行,但现在返回记录中的所有字段,我想通过将结果限制为仅第一个示例中的 3 个字段来最小化数据量。

有什么好方法可以做到这一点?

TIA

4

1 回答 1

2

然后按这三个字段分组。

var billingDateResults =
    from s in Subscriptions
    where s.ProductCode.Contains("myCode")
    group new
    {
        g.ID,
        BillingDate = s.BILL_THRU,
        s.ProductCode
    } by s.ID into g
    select g.First(); // FirstOrDefault is not necessary, the groups will be non-empty
于 2013-01-08T17:54:30.583 回答