2010-07-30 58 views
0

我想使下列查询动态化。Datatable上的动态Linq查询

var t = from r in dt.AsEnumerable() 
orderby r.Field<int>("id") ascending 
select r; 

void query(string sorttype,string sortorder) 

是否possbile通过部分改变顺序,使那些paramater将在这里和排序顺序来自像 sorttype id的函数的参数上升。

回答

0

我认为这应该这样做:

IEnumerable query<sorttype>(DataTable dt, string sortorder) { 
    return dt.GetList().OrderBy(row => row.Field<sorttype>(sortorder)); 
} 

注意sorttype是一个泛型类型参数,而不是字符串。

+0

Datatable是Enumerable,所以它不会这样工作 – hrrrr 2010-07-30 03:13:05

+0

@hrrrr:你是对的,我已经添加了一个调用GetList()来解决这个问题。 http://msdn.microsoft.com/en-us/library/bb338495.aspx – recursive 2010-07-30 03:29:05