.jpg)
Path.Combing很方便,但是在.NET框架中是否有类似的URL函数?
我正在寻找这样的语法:
Url.Combine("https://www.lanrenmb.com/", "/Images/Image.jpg")
这将返回:

网友回答:
这可能是一个合适的简单解决方案:
public static string Combine(string uri1, string uri2)
{
uri1 = uri1.TrimEnd('/');
uri2 = uri2.TrimStart('/');
return string.Format("{0}/{1}", uri1, uri2);
}

网友回答:
Uri有一个构造函数应该为您执行此操作:new Uri(Uri baseUri, string relativeUri)
下面是一个示例:
Uri baseUri = new Uri("https://www.lanrenmb.com");
Uri myUri = new Uri(baseUri, "catalog/shownew.htm");
编辑注意:请注意,此方法无法按预期工作。在某些情况下,它可以削减部分baseUri。请参阅评论和其他答案。

网友回答:
这里已经有一些很好的答案。根据 mdsharpe 建议,这里有一个扩展方法,当你想要处理 Uri 实例时,可以轻松使用:
using System;
using System.Linq;
public static class UriExtensions
{
public static Uri Append(this Uri uri, params string[] paths)
{
return new Uri(paths.Aggregate(uri.AbsoluteUri, (current, path) => string.Format("{0}/{1}", current.TrimEnd('/'), path.TrimStart('/'))));
}
}
和使用示例:
var url = new Uri("https://www.lanrenmb.com/subpath/").Append("/part1/", "part2").AbsoluteUri;
这将产生 https://www.lanrenmb.com/subpath/part1/part2
如果您想使用字符串而不是 Uris,那么以下内容也将产生相同的结果,只需调整它以满足您的需求:
public string JoinUriSegments(string uri, params string[] segments)
{
if (string.IsNullOrWhiteSpace(uri))
return null;
if (segments == null || segments.Length == 0)
return uri;
return segments.Aggregate(uri, (current, segment) => $"{current.TrimEnd('/')}/{segment.TrimStart('/')}");
}
var uri = JoinUriSegements("https://www.lanrenmb.com/subpath/", "/part1/", "part2");
模板简介:该模板名称为【Path.Combing很方便,但是在.NET框架中是否有类似的URL函数?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。