有沒有不錯linqy將FormCollection
拆分爲Dictionary<string,string>
的方法,該方法僅包含以特定字符串開頭的那些鍵?通過以特定字符串開頭的密鑰切片FormCollection
(這個問題是基本相同,這 - >但對於C#/的FormCollection的蟒蛇Slicing a dictionary by keys that start with a certain string代替)
這就是我想出了要解決的問題:
public ActionResult Save(FormCollection formCollection) {
var appSettings = new Dictionary<string, string>();
var appKeys = formCollection.AllKeys.Where(k => k.StartsWith("AppSettings."));
foreach (var key in appKeys)
{
appSettings[key] = formCollection[key];
}
...
編輯:這個代碼的問題是,我必須爲不同的StartsWith字符串多次執行此操作,因此需要創建一個'實用程序'方法來執行上述操作。 這將是很好,如果它可以像一行寫着:
formCollection.Where(k=>k.Key.StartsWith("AppSettings.");
背景(沒有必要解決的問題):的背景是asp.net的MVC,並與動態辭典的一種形式領域。
這也是類似這樣的問題 - Return FormCollection items with Prefix - 但不完全一樣。
而且看了這個答案How to build C# object from a FormCollection with complex keys - 我開始懷疑我是否會被關閉,即使不使用表單提交,但發送JSON,而不是更好。
有什麼不對你的代碼? – 2011-02-03 23:58:52
請注意,您應該始終描述*問題*。這聽起來像你說:「我做的東西,這就是我正在做的。是否有這樣做的一個很好的方式嗎?」,尚不能告訴我們,爲什麼你目前的解決方案是*不是很好*。 – 2011-02-04 00:03:55
謝謝,我編輯的問題,說爲什麼不是很好(這個詞「編輯」,所以它看起來並不像你抱怨什麼) – PandaWood 2011-02-04 00:13:50