采取以下示例代碼:
public record ProductGroups(int size, List<Product> products);
public record Product(int size, int Id, string style);
queryResults = new List<Product>()
{
new Product(1, 1, "short sleeve"),
new Product(1, 2, "long sleeve"),
new Product(1, 3, "hoodie"),
new Product(2, 4, "med short sleeve"),
new Product(2, 5, "med long sleeve")
}
/* Want to turn queryResults into a list<ProductGroups> object that looks like this:
[
{
size: 1,
products: [{1, 1, "short sleeve"}, {1, 2, "long sleeve"} {1, 3, "hoodie}]
},
{
size: 2,
products: [{2, 4, "med short sleeve"}, {2, 5, "med long sleeve"}]
}
]
*/
我嘗試了多種變體,GroupBy但沒有成功實作所需的格式:
var productGroups = queryResults.GroupBy(x => x.size).ToList();回傳 aList<IGrouping<int, Product>>這不是我想要的。
uj5u.com熱心網友回復:
您可以分組Size并分配Products給組中的專案串列。以下回傳一個匿名物件:
var result = queryResults.GroupBy(r => r.size)
.Select(g => new { Size = g.Key, Products = g.ToList() });
如果您需要一個具體的類/記錄ProductGroup,那么查詢與上面的非常相似:
var result = queryResults.GroupBy(r => r.size)
.Select(g => new ProductGroup(g.Key, g.ToList()));
public record ProductGroup(int Size, List<Product> Products);
但它看起來也像您的資料型別匹配Dictionary<int, List<Product>>。所以你可以ToDictionary在分組后使用:
var result = queryResults.GroupBy(r => r.size)
.ToDictionary(r => r.Key, r => r.ToList());
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/443583.html
上一篇:如何從另一個類C#mvvm訪問我的ObservableCollection以將專案添加到該集合
下一篇:從View獲取值到另一個控制器
