日期:2014-05-20  浏览次数:20840 次

linq groupby的问题
C# code
       List<DateTime> ld = new List<DateTime>();
            for (int i = 0; i < (eTime - sTime).Days; i++)
            {
                ld.Add(sTime.AddDays(i));
            }

    var stat = ls1.GroupBy(p=>p.DateTime).Select(x => new { x.Key, Values = x.AsEnumerable().OrderBy(p => p.DevName) });



本来是根据 对象内的 dateTime 做分组,但是可能出现 有一个对象是空值的问题

现在要根据那个 ld 的list 做分组 请问如何写

------解决方案--------------------
var stat = ls1.Where(p=>p.DateTime !=null).GroupBy(p=>p.DateTime).Select(x => new { x.Key, Values = x.AsEnumerable().OrderBy(p => p.DevName) });

先where过滤掉空情况再Group By
------解决方案--------------------
也可以用 DefaultIfEmpty() 给一个默认值。
------解决方案--------------------
要是为空,排序时也要有个值才能排序的,把为空的换成0吧