LINQ - GroupBy并投射到一个新类型?

Sax*_*man 3 .net c# linq

我有一个项目列表,即,List<SearchFilter>这是SearchFilter对象:

public class SearchFilter
{
    public int ItemID { get { return ValueInt("ItemID"); } }
    public string ItemName { get { return ValueString("ItemName"); } }
    public string Type { get { return ValueString("Type"); } }
}
Run Code Online (Sandbox Code Playgroud)

如何Type按组分组,并将分组的项目投影到新的列表中GroupedFilter,即:

public class Filter
{
    public int ItemID { get; set; }
    public string ItemName { get; set; }
}

public class GroupedFilter
{
    public int Type { get; set; }
    public List<Filter> Filters { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Mat*_*ott 5

var result = items.GroupBy(
    sf => sf.Type,
    sf => new Filter() { ItemID = sf.ItemID, ItemName = sf.ItemName },
    (t, f) => new GroupedFilter() { Type = t, Filters = new List<Filter>(f) });
Run Code Online (Sandbox Code Playgroud)

但您需要确保您的GroupedFilter.Type房产string符合您的SearchFilter.Type房产.