linq 计数优化

发布于 2024-10-25 01:47:34 字数 423 浏览 1 评论 0原文

我正在编写一个 linq 查询,我想知道我做得是否正确:我传递了 2 个参数,TheDate 和 UserID

Var Output = from c in in MyDC.Table1
  where c.Datetime.Date == TheDate.Date
  where c.UserID == TheUserID
  select new MyMode()
  {
    Var1 = (from c1 in MyDC.Table1
            where c.ID == c1.ID
            select c1.ID).Count()
    Var2 = ...

  }

我想我应该能够对 Var1 进行计数,而无需返回到原来的MyDC,但现在这就是我所拥有的。 让我知道是否有更好的方法。

谢谢。

I'm writing a linq query and I'm wondering if I'm doing it right: I'm passing in 2 parameters, TheDate and UserID

Var Output = from c in in MyDC.Table1
  where c.Datetime.Date == TheDate.Date
  where c.UserID == TheUserID
  select new MyMode()
  {
    Var1 = (from c1 in MyDC.Table1
            where c.ID == c1.ID
            select c1.ID).Count()
    Var2 = ...

  }

I'm thinking I should be able to do the count for Var1 without going back to the original MyDC but for now that's what I have.
Let me know if there's a better way to do it.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

水中月 2024-11-01 01:47:34

这难道不等于:

Var1 = c.Count()

您也需要对某些值进行分组吗?

Wouldn't that be the same as:

Var1 = c.Count()

Are you needing to group on some value, too?

梦晓ヶ微光ヅ倾城 2024-11-01 01:47:34

计数是使用基于方法的语法的覆盖。

var defaults = new[] { "zero", "one", "two", "three", "four" };

var abc = defaults.Select((o,i) => i);
abc.Dump();

输出:IEnumerable(5 项)
0
1
2
3
4

o 是对象,i 是索引。我通常使用方法语法,所以我不确定对其的转换。

The count is an override using method-based syntax.

var defaults = new[] { "zero", "one", "two", "three", "four" };

var abc = defaults.Select((o,i) => i);
abc.Dump();

outputs: IEnumerable (5 items)
0
1
2
3
4

o is the object and i is the index. I usually use method syntax so I'm not sure on the conversion to it.

二智少女猫性小仙女 2024-11-01 01:47:34
var result = from c in MyDC.Table1
             where c.Datetime.Date == TheDate.Date
             && c.UserID == TheUserID
             group c by c.ID into g
             select new
             {
                 Var1 = g.Count()
             };
var result = from c in MyDC.Table1
             where c.Datetime.Date == TheDate.Date
             && c.UserID == TheUserID
             group c by c.ID into g
             select new
             {
                 Var1 = g.Count()
             };
安稳善良 2024-11-01 01:47:34

如果在原始查询中按 c.DateTime.Datec.UserId 进行分组,则 Var1 只是组中的项目数。

If you group by c.DateTime.Date and c.UserId in the original query then the Var1 is just the count of items in the group.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文