C# 检查绝对uri是否包含给定相对uri的最佳方法

C# 检查绝对uri是否包含给定相对uri的最佳方法,c#,uri,C#,Uri,有没有一种简单的方法来测试相对uri是否恰好存在于给定的绝对uri中 例如,这将返回true: 绝对uri: RelativeUri:./path2/blah.html 我能想到的唯一方法是直接使用字符串操作,但我想知道是否有直接使用Uri类的方法 在查看文档后,我不这么认为,即使是URI.Compare()方法也需要开销才能找到正确的索引,这使得它的成本比String.Contains()还要高: 看起来像 string relURI = @"./path2/blah.html"; bool

有没有一种简单的方法来测试相对uri是否恰好存在于给定的绝对uri中

例如,这将返回true:

绝对uri:

RelativeUri:./path2/blah.html


我能想到的唯一方法是直接使用字符串操作,但我想知道是否有直接使用Uri类的方法

在查看文档后,我不这么认为,即使是URI.Compare()方法也需要开销才能找到正确的索引,这使得它的成本比String.Contains()还要高:

看起来像

string relURI = @"./path2/blah.html";
bool containsURI = myUri.AbsolutePath.Contains(relURI);

可能是您的最佳选择(如您所暗示)。

此方法唯一的问题是它不完整。例如,在rel uri前面加句号的情况下,它总是返回false,因为绝对uri中不应该有句号。很容易解决,但我不确定是否还有其他问题为什么要这样做?您是否关心querystring中不同的值编码(例如应该
+
%20
匹配)?以测试httpresponse是否返回我希望它返回的uri。