我不確定在這裏問這種問題是否可以,但我只想知道兩個代碼片段之間的區別。執行速度更快還是更優化? C#
正如我在這裏SO瀏覽的問題,我發現這個職位: How to find the number of HTML elements with a name that starts with a certain string in c#?
用戶回答了這個:
var dictionary = Request.Form.Keys
.Cast<string>()
.Where(x => x.StartsWith("abc"))
.ToDictionary(x => x, x => Request.Form[x]);
返回一個包含所有表單元素的鍵/值的字典,從「abc」開始。
更新:可憐的OP正在使用.Net 2.0。所以這裏是老學校的答案:
Dictionary<string, string> keys = new Dictionary<string, string>();
foreach (string key in request.Form.Keys)
{
if (key.StartsWith("abc"))
keys[key] = request.Form[key];
}
哪兩個執行速度更快或更優化?我們是不是應該使用舊的?
有趣的是OP寫'的foreach鍵[當然在計算是如此簡單,你永遠都不想並行,但一般這種情況下,當循環包含更復雜的代碼,你可能。中]在key'中,而在他的LINQ中使用糟糕的'x => x'。如果變量命名正確,我會選擇LINQ以簡化操作。 – 2010-10-15 05:03:11