【问题标题】:IGrouping does not contain a definition for SumIGrouping 不包含 Sum 的定义
【发布时间】:2019-10-08 04:35:52
【问题描述】:

有人知道这里有什么吗?我正在加载一个 XML 文件,对其进行解析并使用 LINQ 获取一些摘要信息。这是 XML 文档:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <Ticker>
    <Name>MSFT</Name>
    <PurchaseDate>
      2009-01-01
    </PurchaseDate>
    <Shares>44</Shares>
  </Ticker>
  <Ticker>
    <Name>MSFT</Name>
    <PurchaseDate>
      2009-03-01
    </PurchaseDate>
    <Shares>33</Shares>
  </Ticker>
  <Ticker>
    <Name>GOOG</Name>
    <PurchaseDate>
      2009-03-01
    </PurchaseDate>
    <Shares>122</Shares>
  </Ticker>
  <Ticker>
    <Name>AAPL</Name>
    <PurchaseDate>
      2019-03-01
    </PurchaseDate>
    <Shares>89</Shares>
  </Ticker>
</root>

我的代码:

var xmlStr = File.ReadAllText("ClientInfo.xml");
var Summary = XElement.Parse(xmlStr);
var data = from acct in Summary.Elements("Ticker")
       select new
       {
           Ticker = (string)acct.Element("Name"),
           Shares = (int)acct.Element("Shares")
       };

var groupedDataByTicker = from acct in data
                          group acct by acct.Ticker into g
                          select new
                          {
                              Ticker = g.Key,
                              Shares = g.Sum(),
                          };

工作正常,但是当我添加 g.Sum() 位时,我收到以下消息:

“IGrouping>”不包含“Sum”的定义,最佳扩展方法重载“Queryable.Sum(IQueryable)”需要“IQueryable”类型的接收器

我无法理解它,我做错了什么?

【问题讨论】:

    标签: linq linq-to-xml


    【解决方案1】:

    在您的代码中,您试图找到组本身的总和。

    相反,您应该按 Shares 属性求和:

    var groupedDataByTicker = from acct in data
                              group acct by acct.Ticker into g
                              select new
                              {
                                  Ticker = g.Key,
                                  Shares = g.Sum(row => row.Shares),
                              };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      相关资源
      最近更新 更多