繁体   English   中英

如何使用Linq从GroupBy()转换为对象?

[英]How do I convert from GroupBy() to object with Linq?

有两个类:

public class LocalizationPage
{
    public string Title { get; set; }
    public List<LocalizationItem> LocalizationItemList { get; set; }
}

public class LocalizationItem
{
    public int Id { get; set; }
    public string Key { get; set; }
    //...
}

我需要获取LocalizationItem列表并用它填充LocalizationPage。

这就是我填写LocalizationGroups列表的方式:

var LocalizationGroupsTemp = db.Localization.GroupBy(p => p.Page);

List<LocalizationPage> LocalizationGroups = new List<LocalizationPage>();

foreach (var item in LocalizationGroupsTemp)
{
    LocalizationGroups.Add(new LocalizationPage
    {
        Title = item.Key,
        LocalizationItemList = item.ToList()
    });
}

如何以某种方式使用Linq来简化它?

List<LocalizationPage> LocalizationGroups = _context.Localization
    .GroupBy(p => p.Page)
    .Select(grp => grp.ToList())
    //...
    .ToList();

您可以在“ Select执行此操作

var localizationGroups =  _context.Localization
                                  .GroupBy(p => p.Page)
                                  .Select(group => new LocalizationPage
                                  {
                                      Title = group.Key,
                                      LocalizationItemList = group.ToList()
                                  })
                                  .ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM