首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果为null或空集0 LINQ

如果为null或空集0 LINQ
EN

Stack Overflow用户
提问于 2019-08-13 03:03:45
回答 1查看 152关注 0票数 0

如果没有要计数的记录为空或null,我会计算相等的字符串,我的字符串是"sm_red“。

MVC LinQ .NET框架4.5

代码语言:javascript
复制
List<string> trae = new List<string>();
            trae = db.SM_App.Where(x => x.sm_canal.ToString() == "EVERYTHING").Select(x => x.sm_categoria).Distinct().ToList();

var query = (from a in trae
             join b in db.SM_App on a equals b.sm_categoria
             where b.sm_canal == "EVERYGHINT" && b.sm_fecha > sDate && b.sm_fecha < fDate
             group b by b.sm_categoria into g
             select new
             {
             Categoria = g.Key,
             Facebook = g.Count(x => x.sm_red == "Facebook"),
             Twitter = g.Count(x => x.sm_red == "Twitter"),
             Instagram = g.Count(x => x.sm_red == "Instagram") 
             }).Distinct().ToList();

更新13/08/2019

我尝试这样做,但返回"Count = 0",在视图中不返回任何内容

代码语言:javascript
复制
var query = (from a in trae
          join b in db.SM_App on a equals b.sm_categoria into grp
          from c in grp.DefaultIfEmpty()
          where c.sm_canal == "EVERY" && c.sm_fecha > sDate && c.sm_fecha < fDate       
          group c by c.sm_categoria into g
          select new 
          {
            Categoria = g.Key,
            Facebook = g.Count(x => x.sm_red == "Facebook").ToString() == "" ? Convert.ToInt32(g.Key) : 0,
            Twitter = g.Count(x => x.sm_red == "Twitter").ToString() == "" ? Convert.ToInt32(g.Key) : 0,
            Instagram = g.Count(x => x.sm_red == "Instagram").ToString() == "" ? Convert.ToInt32(g.Key) : 0
           }).Distinct().ToList();
EN

回答 1

Stack Overflow用户

发布于 2019-08-13 05:08:07

如果您的整个查询返回零条记录,那么您的结果中也将没有记录。如果希望记录中包含0%s,则必须使用DefaultIfEmpty()

代码语言:javascript
复制
var query = (from a in trae
             join b in db.SM_App on a equals b.sm_categoria
             where b.sm_canal == "EVERYGHINT" && b.sm_fecha > sDate && b.sm_fecha < fDate
             group b by b.sm_categoria into g
             select new {
                 Categoria = g.Key,
                 Facebook = g.Count(x => x.sm_red == "Facebook"),
                 Twitter = g.Count(x => x.sm_red == "Twitter"),
                 Instagram = g.Count(x => x.sm_red == "Instagram") 
             }).Distinct()
               .DefaultIfEmpty(new {
                   Categoria = default(string),
                   Facebook = 0,
                   Twitter = 0,
                   Instagram = 0 
               })
               .ToList();

我不知道在这种情况下你所期望的Categoria是什么,或者它的类型,所以我只是假设了string和default(string),它是null

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57466859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档