2011-09-01 40 views
1

我想重新使用一個linq-to-sql函數,我每次都會將它傳遞給另一個字段進行分組。重用組LINQ函數

例如:

groupby(fieldX); 
groupby(fieldY); 

public void groupby(??? fieldName) 
{ 
    return from rows in db....... group by fieldname 
} 

,這是一個僞

的感謝!

回答

2

如果我正確理解你的問題,你試圖重新創建LINQ Enumerable.GroupBy方法本身。

您可以從而達到您想要的結果,而不需要編寫一個全新的方法,這樣做:

var group1 = someEnumerable.GroupBy(o => o.fieldX); 
var group2 = someEnuemrable.GroupBy(o => o.fieldY); 
+0

我希望它其發送到SQL ...查詢本身內。我不希望我的應用程序計算這個 – Himberjack

+0

你用什麼來訪問數據庫?這個實體框架,LINQ to SQL,還是其他一些技術?無論採用哪種技術,如果它將查詢以「IQueryable 」的形式返回,GroupBy方法仍然可以在「IQueryable 」上工作,並將組推遲到數據庫。 –

+0

@Himberjack - 如果您正在使用Linq-To-SQL,只要'GroupBy'位於DataContext上,它就會被髮送到數據庫。 – vcsjones

2

結帳this後。也許你會需要混合代碼一點點,但你會發現GroupBy(string fieldName)

那裏介紹動態創建的Lambda表達式