我有一些接受DataTable作爲參數的代碼,並計算DataTable中幾個列的總數。我認爲能夠傳遞一個lambda表達式可能會很好,這個lambda表達式可以在我總計的列上執行一個過濾器。如何傳遞將用作數據表中行的過濾器的lambda?
下面的代碼的一部分:
public TrafficTotals CalculateTotals(DataTable table)
{
TrafficTotals total = new TrafficTotals();
total.TotalTraffic = table.AsEnumerable().Sum(p => p.Field<int>("Converted"));
// More stuff
我可以手動代碼可以直接在添加過濾器入表達:
var filteredTotal = table.AsEnumerable().Where(p => p.Field<string>("MyColumn") == "Hello").Sum(p => p.Field<int>("Converted"));
而是我想通過「在哪裏「部分作爲lambda表達式來代替,但我一直迷失在語法中以使參數正確。
我有幾種方法可以解決這個問題,其實並不涉及lambdas,但它似乎是處理這個問題的好方法。
任何想法?
該代碼與第一個示例類似。第二個例子是我希望它的行爲(而不是實際編寫代碼的方式)。我很親密。我不確定Func想要什麼類型,但現在我明白了,這很明顯。 – 2009-01-23 20:12:25