gpt4 book ai didi

c# - 如何在 C# 中将此功能编写为通用扩展方法?

转载 作者:行者123 更新时间:2023-11-30 19:20:46 25 4
gpt4 key购买 nike

我有以下内容:

using (var dsProperties = GetDataset(SP_GET_APPLES, arrParams))
{
var apples= dsProperties.Tables[0].AsEnumerable()
.Select(r => new Apple()
{
Color = r[0].ToString(),
Year = r[1].ToString(),
Brand= r[2].ToString()
});

return apples.ToList();
}

现在,我想在 Dataset 上有一个扩展方法,我可以将所需的 Type 作为参数传递给它,并获得预期的 List 返回...类似

dsProperties.GetList(Apple); 

也可以用于

using (var dsProperties = GetDataset(SP_GET_ORANGES, arrParams)){     
dsProperties.GetList(Orange); }

有没有办法做到这一点?

最佳答案

这个怎么样?

static IEnumerable<T> GetList<T>(this DataSet dataSet, Func<DataRow, T> mapper) {
return dataSet
.Tables[0]
.AsEnumerable()
.Select(mapper);
}

和用法:

dsProperties.GetList<Apple>(r => 
new Apple {
Color = r[0].ToString(),
Year = r[1].ToString(),
Brand= r[2].ToString()
});

这个映射也可以放在另一个地方。

关于c# - 如何在 C# 中将此功能编写为通用扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305818/

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