Gil*_*lla 2 c# linq extension-methods anonymous-types dataset
我有以下内容:
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();
}
Run Code Online (Sandbox Code Playgroud)
现在,我希望有一个扩展方法Dataset,我可以将所需Type的参数作为参数传递并获得预期的List...类似于
dsProperties.GetList(Apple);
Run Code Online (Sandbox Code Playgroud)
也可以用于
using (var dsProperties = GetDataset(SP_GET_ORANGES, arrParams)){
dsProperties.GetList(Orange); }
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?
这个怎么样?
static IEnumerable<T> GetList<T>(this DataSet dataSet, Func<DataRow, T> mapper) {
return dataSet
.Tables[0]
.AsEnumerable()
.Select(mapper);
}
Run Code Online (Sandbox Code Playgroud)
用法:
dsProperties.GetList<Apple>(r =>
new Apple {
Color = r[0].ToString(),
Year = r[1].ToString(),
Brand= r[2].ToString()
});
Run Code Online (Sandbox Code Playgroud)
这种映射也可以放在另一个地方.
| 归档时间: |
|
| 查看次数: |
294 次 |
| 最近记录: |