【问题标题】:Linq Manipulate OutputLinq 处理输出
【发布时间】:2016-03-09 05:21:29
【问题描述】:

我想通过取出 Id 来操作我的 Linq Group 的数据输出,并且只取出输出上的结果而不是按 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 做到这一点?还是其他一些额外的代码?

【问题讨论】:

  • 只要使用listadepuntos.Add(string.Format("{{{0}, Total = {1}}}", item. Pdv, item. Total))
  • 看起来@Artuno 从早上开始就受到这个问题的困扰。:-)
  • 你的权利@HariPrasad 我正在受苦,但这非常有效,天哪,非常感谢你:')
  • 不用担心,正如@Rob 在上一篇文章中建议的那样,支持/关闭对您有帮助的解决方案。
  • 创建解决方案来帮助遇到同样问题的人。

标签: c# linq group-by


【解决方案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}}}");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 2018-03-14
    • 2014-04-28
    • 1970-01-01
    相关资源
    最近更新 更多