我有基於某些ID或字符串值,我想如何使用lambda表達式改變計算類型?
var result = from r in mlist
group r by new
{
r.ParameterId,
r.WId,
} into g
select new
{
g.Key.ParameterId,
g.Key.WId,
Value = g.Sum(x => x.Value)
};
在組改變計算類型列表,我想用一個自定義的方法,該方法將返回基礎計算的結果來替換這個LINQ總和像一些平均計算類型,總結等
可能是這樣的:
var result = from r in mlist
group r by new
{
r.ParameterId,
r.WId,
} into g
select new
{
g.Key.ParameterId,
g.Key.WId,
Value = g.CustomMethod(x => x.Value, x.calctype)
};
難道這會打的數據庫?或者在記憶中?無論如何,就像在自定義方法中寫入'if' /'switch'語句一樣簡單。 – Rob
第二個'x'來自'g.CustomMethod(x => x.Value,x.calctype)''?也許可以用'calctype'作爲關鍵字在字典中添加所有可能的函數。在這種情況下,你可以稱它爲'dict [g,x => x.Value]'。使用它你不能稱之爲擴展方法。 –
您是否需要將x.value和x.calctype專門傳遞給CustomMethod?如果您有權訪問CustomMethod中的完整r對象,它不會起作用嗎? – sachin