Extract query string from an url (Csharp)

Nếu có một lúc nào đó cần lấy paramater (query string) trong chuỗi URL, hãy nhớ tới bài viết này. He he

C# đã cung cấp một hàm để phân tích các paramater trong URL thành một mảng [name, value].

HttpUtility.ParseQueryString(string query)

Chẳng hạn, ta có URL như sau: http://test.abc?p1=1&p2=2

Từ đây, chúng ta cần lấy phần query phía sau dấu chấm hỏi:

string url = "http://test.abc?p1=1&p2=2";
string query = url.Split('?')[1];
/*--> query = p1=1&p2=2 */

Giờ chỉ việc gọi hàm và lấy giá trị thôi.

NameValueCollection array = HttpUtility.ParseQueryString(query);

string p1 = array.Get("p1");
string p2 = array.Get("p2");
Tóm gọn lại:
public NameValueCollection ExtractParamUrl(string url)
{
    if (string.IsNullOrEmpty(url) || url.IndexOf('?') < 0)
        return null;

    string query = url.Split('?')[1];

    return HttpUtility.ParseQueryString(query);
}