【问题标题】:after group by in LINQ how to get to nested values using select在LINQ中分组后如何使用select获取嵌套值
【发布时间】:2011-07-19 23:02:00
【问题描述】:

http://img51.imageshack.us/i/linqquestion.png/

一切都在图片中。

我只想获取突出显示的值之一,例如 size

图片代码:

        var queryGroupDuplicates = from dlc in listDLC
                                   from song in dlc.songs
                                   group dlc by song.shortname into duplicates
                                   where duplicates.Count() > 1
                                   select duplicates;
        queryGroupDuplicates.Dump();

【问题讨论】:

  • 请粘贴您的代码作为问题的一部分 - 这将帮助任何试图回答您的问题的人,而不必从头开始输入。

标签: linq select group-by igrouping


【解决方案1】:
var queryGroupDuplicates = from dlc in listDLC
                           from song in dlc.songs
                           group dlc by song.shortname into duplicates
                           where duplicates.Count() > 1
                           select new
                           {
                           duplicatName = duplicates.Key,
                           DLCfiles = from DLCfile in duplicates
                                      select new {DLCfileName = DLCfile.fileName, packName = DLCfile.packName}
                           };

此代码生成下图中的内容: http://img846.imageshack.us/i/linqanswer.png/

MSDN - 我看到这个后有了主意,但无论如何感谢您的快速响应。

【讨论】:

    【解决方案2】:

    所以您只想从组中的任何项中选择这些字段?好吧,您的图片显示了组中的内容,因此请选择组中的一项并选择您想要的字段(让我们选择第一个的值)。

    var queryGroupDuplicates =
        from dlc in listDLC
        from song in dlc.songs
        group dlc by song.shortname into duplicates
        where duplicates.Count() > 1
        let someItem = duplicates.First()
        select new
        {
            someItem.fileName,
            someItem.gameID,
            someItem.size,
            someItem.errorsDLC,
            someItem.packName,
        };
    

    【讨论】:

      【解决方案3】:
      queryGroupDuplicates.First().First().size
      

      【讨论】:

      • 很好,没想到我可以那样做
      猜你喜欢
      • 1970-01-01
      • 2021-12-18
      • 2020-12-17
      • 2021-08-20
      • 2020-02-08
      • 2023-01-28
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      相关资源
      最近更新 更多