使用Func按条件传递组作为参数
本文关键字:参数 Func 条件 使用 | 更新日期: 2023-09-27 18:28:12
我有一个类和方法,如下
public class Product{
public int Id{get;set;}
public string Name{get;set;}
}
private void Method(List<Product> products)
{
var grouped = products.GroupBy(x=>x.ProductId)
....etc
}
是否可以通过条件x=>x.ProductId作为参数来传递组?因为有时我想按名称、Id等进行分组
请找个人帮忙好吗?我试图实现Func Deletegate,但我遇到了数据类型不匹配的问题
private void Method(List<Product> products, Func<Product, long> groupByCond)
{
var grouped = products.GroupBy(groupByCond)
....etc
}
但对于按名称分组,它需要类型字符串,而不是长字符串。有人能帮助使这个泛型接受所有类型吗?
谢谢。
就像对待任何其他泛型方法一样,使用泛型类型参数(例如TProperty
)而不是long
。
private void Method<TProperty>(List<Product> products, Func<Product, TProperty> groupByCond)