文字列から Uri を作成するには、次のようにします。
Uri u = new Uri("example.com");
しかし問題は、文字列(上記のような)にプロトコルが含まれていない場合、例外が発生することです: " Invalid URI: The format of the URI could not be determined.
"
例外を回避するには、以下のようにプロトコルを含む文字列を確保する必要があります。
Uri u = new Uri("http://example.com");
しかし、URL を入力として受け取る場合、プロトコルが欠落している場合はどうやって追加できますか?
IndexOf/Substring 操作は別として?
エレガントで速いものはありますか?
ベストアンサー1
また、UriBuilder
:
public static Uri GetUri(this string s)
{
return new UriBuilder(s).Uri;
}
MSDN からのコメント:
このコンストラクターは、uri で指定されたとおりに Fragment、Host、Path、Port、Query、Scheme、および Uri プロパティを設定して、UriBuilder クラスの新しいインスタンスを初期化します。
uri でスキームが指定されていない場合、スキームはデフォルトで「http:」になります。