2011-12-02 73 views

回答

2

幾乎可以肯定將是更好的方式來解決這個問題,但回答你的問題問,你可以使用dynamic

private static IQueryable<T> GetInteriorElements<T> 
       (IQueryable<T> source, int skip, int take) 
{ 
    return source.Skip(skip).Take(take); 
} 

,並調用它爲:

object DataSource = ... 

// The real question is: what are you now going to do with this? 
var pagedData = GetInteriorElements((dynamic)DataSource, 10, 20); 

如果你在.NET 3.5中,你將不得不使用反射,很遺憾。

1

它的時間來正確地定義一個類。匿名類型在創建它們的方法中完全獨立時非常棒。當你演示需要在代碼中的其他地方使用它們時,通過類定義記錄類型,然後可以在需要它的任何地方使用該類,包括在演員表中。一旦創建了類定義,只需在需要的地方按名稱引用類。

查詢:

... 
select new ClassName // name the class 
{ 
    ... 
} 

方法的返回類型

public IQueryable<ClassName> GetData() 

而且投

var data = (IQueryable<ClassName>)theDataSource; 
相關問題