合并具有共同部分的2个Urls

时间:2019-05-25 20:32:55

标签: c# asp.net asp.net-mvc url

我有2个网址:

1. "C:/inetpub/wwwroot/XYZ/"
2. "/XYZ/Media/Default"

我想将两者结合起来,以便获得"C:/inetpub/wwwroot/XYZ/Media/Default"

我该怎么做?请注意,两个Urls的类型均为string

2 个答案:

答案 0 :(得分:1)

如果它们总是相同的形式,那么您可以这样做

string url = string.Concat(url1.Trim(new[] {'/'}), url2);

答案 1 :(得分:1)

您可以根据分隔符"/"拆分两个URL,然后合并两个没有重复的列表,如下所示:

using System;
using System.Linq;

public class Program
{
    public static void Main()
    {
        var url1 = "C:/inetpub/wwwroot/XYZ/";
        var url2 = "/XYZ/Media/Default";
        var f = url1.Split(new[]{'/'},StringSplitOptions.RemoveEmptyEntries);
        var s = url2.Split(new[]{'/'},StringSplitOptions.RemoveEmptyEntries);
        var fullurl = string.Join("/", f.Concat(s).Distinct());
        Console.WriteLine(fullurl);
    }
}

输出:

C:/inetpub/wwwroot/XYZ/Media/Default

即使相交超过一个方向,该解决方案也适用于所有情况