Linq操作输出

时间:2016-03-09 05:21:30

标签: c# linq group-by

我想操纵我的Linq Group的数据输出,取出Id并且只输出输出而不是ID的组

我该怎么做?

这是我的LINQ

 foreach (var item in db.Pos.Where(r => r.Fecha.Day <= today.Day)
                       .Select(g => new { Pdv = g.Pdv, Total = g.Total })
                       .GroupBy(l => l.Pdv)
                       .AsEnumerable()
                       .Select(z => new { Pdv = z.Key, Total = z.Sum(l => l.Total) })
                       .OrderByDescending(r => r.Total)
                       .Select(r => new { Pdv = r.Pdv, Total = String.Format("{0:$#,##0.00;($#,##0.00);Zero}", Decimal.Round(r.Total, 0)) })


        {
            listadepuntos.Add(item.ToString());
        }

我的输出是这样的:

{Pdv = Central, Total = 42,143.00}

我想把输出中的“PDV =”作为一部分,只得到这个:

{Central, Total = 42,143.00}

有没有办法用我的Linq做到这一点?还是其他一些额外的代码?

1 个答案:

答案 0 :(得分:1)

使用String.Format格式化字符串,然后再将其添加到List

listadepuntos.Add(string.Format("{{{0}, Total = {1}}}", item. Pdv, item. Total));

如果您使用的是C# 6,那么我们可以利用String Interpolation的美感。

listadepuntos.Add($"{{{item.Pdv}, Total = {item.Total}}}");