Примечание что в подобных случаях общая ошибка заключается в том, чтобы просто собрать некоторую функцию обработки строк, которая не может справиться с полной возможной спецификацией ввода. В вашем случае существует много допустимых URL-адресов, которые на самом деле довольно сложно обрабатывать/разбирать правильно. Поэтому вы должны придерживаться уже реализованных проверенных классов.
Таким образом, я бы использовал класс System.Uri
, чтобы использовать строку URL. Часть URL-адреса, к которой вы на самом деле пытаетесь получить доступ, - это так называемый «запрос», который также является свойством экземпляра Uri
. Сам запрос можно легко и правильно получить в виде отдельных частей ключевого значения, используя System.Web.HttpUtility.ParseQueryStringMethod()
(вам нужно добавить System.Web.dll
к ссылкам вашего проекта и убедиться, что вы не используете профиль клиента .NET 4 для своего приложения, так как это будет не включайте эту сборку).
Пример:
Uri u = new Uri("https://localhost:8181/PortalSite/View/CommissionStatement.aspx?status=commission&quarter=1;");
Console.WriteLine(u.Query); // Prints "status=commission&quarter=1;"
var parameters = HttpUtility.ParseQueryString(u.Query);
Console.WriteLine(parameters["status"]); // Prints "commission"
После того, как у вас есть "параметры" можно также перебирать их, искать их и т.д. YMMV.
Если вам нужен вывод, который вы видите в своем вопросе, то знаете, что вам всегда нужен первый параметр строки запроса (и не можете найти его по имени, как показано выше), тогда вы можете используйте следующее:
string key = parameters.GetKey(0);
Console.WriteLine(key + "=" + parameters[key]); // Prints "status=commission"
> но сбой в Split ["&"] - может быть, 'Split (" & ")'? – Samich
@Samich Split ('&') - это с одной цитатой, для char. – Bakudan
Да .. Я не обращал внимания на цитаты. Благодарю. – Samich