投射到班级的Linq

本文关键字:Linq | 更新日期: 2023-09-27 18:01:33

public class MarketViewModel
{
    public MarketViewModel()
    {
    }
    public string Item { get; set; }
    public List<SubItem> StationName { get; set; }
}
public class SubItem
{
    public string Item { get; set; }
}
var active = from actives in activeStations
    group actives.StationName by new { actives.Market,actives.StationGroupInt } into g
    select new MarketViewModel { Item = g.Key.Market, StationName = g.tolist() };

在上面的LINQ代码中,我的问题是我如何投射到MarketviewModel,因为你看到stationname是subItem的列表。

StationName = g.tolist()

(我如何重写这部分?)以便它创建一个子项对象列表

编辑

活动实体包含

  • stationName(字符串),
  • stationgroupInt (int),
  • 市场(字符串)

market stationName StationgroupInt
----------------------------------
A       B              1
A       C              1
A       D              1 

投射到班级的Linq

您可以在组g上使用Select来创建子条目。

var active = from actives in activeStations
             group actives.StationName by new { actives.Market,actives.StationGroupInt } into g
             select new MarketViewModel { 
                 Item = g.Key.Market, 
                 StationName = g.Select(stationName => new SubItem { 
                     Item = stationName 
                 }).Tolist() 
             };