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

时间:2019-01-15 20:26:37

标签: c# uri

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

例如,这将返回true:

绝对uri:http://www.google.com/path1/path2/blah.html

RelativeUri:./path2/blah.html

我能想到的唯一方法是直接通过字符串操作来实现,但是想知道是否存在使用Uri类直接实现的方法。

1 个答案:

答案 0 :(得分:0)

在查看文档之后,我不这么认为,即使URI.Compare()方法也需要开销才能找到正确的索引,从而使其成本比String.Contains()更高: https://docs.microsoft.com/en-us/dotnet/api/system.uri.compare?view=netframework-4.7.2

看起来像

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

可能是最好的选择(如您所暗示的那样)。