【问题标题】:Linq method equivalent for "Into" [duplicate]等效于“Into”的Linq方法[重复]
【发布时间】:2021-08-16 10:04:17
【问题描述】:

我确实有一个 LINQ 查询:

var groupedResult = from address in Address.GetAddresses()
                      group new { City = address.City, HasManyInhabitants = address.Inhabitants > 20 } 
                      by address.City into addressWithInfo
                      select addressWithInfo;

效果很好。但我正在寻找这个查询的方法基础方法。目前我使用

var groupedResult = Address.GetAddresses()
                  .Select(a => new { City = a.City, HasManyInhabitants = a.Inhabitants > 20 })
                  .GroupBy(a => a.City)
                  .Select(a => a);

它可以工作,但它似乎不正确,因为反编译的代码(使用 ILSpy)看起来不相似。

问候, 托斯滕

【问题讨论】:

标签: c# linq


【解决方案1】:

你只想要这个:

var groupedResult =
    Address
        .GetAddresses()
        .GroupBy(
            address => address.City,
            address => new
            {
                City = address.City,
                HasManyInhabitants = address.Inhabitants > 20
            });

【讨论】:

    【解决方案2】:

    into 用于分配标识符(即变量),以便您可以继续查询。这在 LINQ 语法中是必需的,否则您将无法访问组结果。

    要使用 LINQ 方法获得类似的结果,您可以定义一个变量来获取 GroupBy() 返回的结果,但您实际上不需要它来继续查询,因为您可以像在例子

    into关键字在这里详细解释https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/into

    【讨论】:

      猜你喜欢
      • 2012-08-22
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      • 2011-04-26
      • 2016-05-17
      • 2015-04-13
      • 1970-01-01
      相关资源
      最近更新 更多