gpt4 book ai didi

c# - 使用没有 foreach 的 LINQ 按类别划分产品列表

转载 作者:行者123 更新时间:2023-12-05 05:37:45 26 4
gpt4 key购买 nike

如何在没有 foreach 的情况下在方法中返回值?我的意思是我可以轻松地将其划分为 foreach 循环,但我需要以这种格式获得答案 IEnumerable<(string category, IEnumerable<string> productsName)> .我能做什么?

public static IEnumerable<(string category, IEnumerable<string> productsName)> GroupByCategory()
{
List<Product> products = Products.ProductList;

var orderGroups = products.Where(p => p.ProductId <= 20).GroupBy(p => p.Category,
(Key, g) => new { Category = Key, Products = g });

foreach (var i in orderGroups)
{
Console.WriteLine($"Category={i.Category}:");
foreach (var p in i.Products)
{
var s = $"ProductID={p.ProductId},
Product Name={p.ProductName},
UnitPrice={p.UnitPrice},
UnitsInStock={p.UnitsInStock}";

Console.WriteLine(s);
}
}
}

最佳答案

像这样的东西可能对你有用。特别是选择和嵌套选择语句。

public IEnumerable<(string category, IEnumerable<string> productsName)> GroupByCategory()
{
List<Product> products = Products.ProductList;

return products.Where(p => p.ProductId <= 20)
.GroupBy(p => p.Category)
.Select(g => (g.Key, g.Select(p => p.ProductName)));
}

我个人会创建一个模型来更好地封装结果,比如 CategoryGroup .然后你可以为它构建一个构造函数,它需要 IGrouping<string, Product>作为清理 .Select 的参数更进一步,但这只是偏好!

关于c# - 使用没有 foreach 的 LINQ 按类别划分产品列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73066986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com