LINQ查询中的通用方法 [英] Generic Method in LINQ query

查看:58
本文介绍了LINQ查询中的通用方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在LINQ查询中创建泛型方法

Is it possible to create generic method in LINQ query

公共类管理器

{

public DataSet pullRows< T>(string s1)

public DataSet pullRows<T>(string s1)

{

    IEnumerable的< T> qResl =从VAL在MyTable的

    IEnumerable<T> qResl = from val in MyTable

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;其中val.Column1 = S1

                                          where val.Column1=s1

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;选择
(o =>新T(val))

                                          select (o => new T(val))

    :

    :

    返回ds;

     return ds;

}

}

/ ///////

////////

尝试此选项

var query = < span style ="color:blue"> from val
in   MyTbl

     ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
其中
val.Price> 9.99

            
select
new {val.Price,val.Genre};



query.CopyToDataTable(table,LoadOption.PreserveChanges);

var query = from val in MyTbl
             where val.Price > 9.99
             select new { val.Price, val.Genre };

query.CopyToDataTable(table, LoadOption.PreserveChanges);

但我看到编译错误

错误  1&NBSP;类型 'AnonymousType#1' 不能被用作在通用类型或方法"System.Data.DataTableExtensions.CopyToDataTable<类型参数 'T'; T>(System.Collections.Generic.IEnumerable< T>中System.Data .DataTable,System.Data.LoadOption)'。
有一个从 'AnonymousType#1' 到 '的System.Data.DataRow' &NBSP没有隐式引用转换; C:\MSOfficeUtil\Manager.cs&NBSP; 44&NBSP; 13&NBSP; MSOfficeUtil

Error 1 The type 'AnonymousType#1' cannot be used as type parameter 'T' in the generic type or method 'System.Data.DataTableExtensions.CopyToDataTable<T>(System.Collections.Generic.IEnumerable<T>, System.Data.DataTable, System.Data.LoadOption)'. There is no implicit reference conversion from 'AnonymousType#1' to 'System.Data.DataRow'. C:\MSOfficeUtil\Manager.cs 44 13 MSOfficeUtil

提前致谢。

lb55

推荐答案

我建​​议查看
source
(第110和113行),供CopyToDataTable了解如何编写自己的。
I would suggest looking at the source (line 110 and 113) for CopyToDataTable to understand how to write your own.


这篇关于LINQ查询中的通用方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆