C#获取两个字符串的交集

发布时间 2023-11-02 11:53:47作者: 糯米白白

C#获取两个字符串的交集

1.前缀交集

/// <summary>
/// 获取两个字符串的前缀交集
/// </summary>
/// <param name="str1"></param>
/// <param name="str2"></param>
/// <returns></returns>
public static string GetPrefixIntersect(string str1, string str2)
{
    if (str1 == null || str2 == null) return null;

    string result = string.Empty;

    int len = str1.Length > str2.Length ? str2.Length : str1.Length;

    for (int i = 0; i < len; i++)
    {
        if (str1[i] == str2[i]) result += str1[i];
        else break;
    }

    return result;
}

2.所有交集

/// <summary>
/// 获取两个字符串的所有交集
/// </summary>
/// <param name="str1"></param>
/// <param name="str2"></param>
/// <returns></returns>
public static string GetIntersect(string str1, string str2)
{
    if (str1 == null || str2 == null) return null;

    return string.Join("", str1.Intersect(str2));
}