あなたはとても素敵な方法でこれを達成するためにLINQと拡張メソッドを使用することができますC#3を使用している場合。まず、あなたがthis threadにBryan Wattsによって考案された拡張メソッドを作成する必要があります。
<form id="form1" runat="server">
<div>
<input type="text" name="XXX_Name" value="Harold Pinter" />
<input type="text" name="XXX_Email" value="[email protected]" />
<input type="text" name="XXX_Phone" value="1234 5454 5454" />
<input type="text" name="YYY_Name" value="AN. Other" />
<input type="text" name="YYY_Email" value="[email protected]" />
<input type="text" name="YYY_Phone" value="8383 3434 3434" />
<input type="submit" value="submit button" />
</div>
</form>
あなたは、あなたの分離コードでこれを行うことができます:
protected void Page_Load(object sender, EventArgs e)
{
var data = Request.Form.ToPairs().Where(k => k.Key.StartsWith("XXX_"));
foreach (var item in data)
{
Response.Write(String.Format("{0} = '{1}', ", item.Key, item.Value));
}
}
public static IEnumerable<KeyValuePair<string, string>> ToPairs(this NameValueCollection collection)
{
if (collection == null)
{
throw new ArgumentNullException("collection");
}
return collection.Cast<string>().Select(key => new KeyValuePair<string, string>(key, collection[key]));
}
を今、あなたはこのようなフォームを持っていたと言います
出力するもの: