C#:如何查找两个字符串数组是否包含相同的值

时间:2016-12-20 09:54:00

标签: c# string split dataset

我有两个逗号分隔的字符串。 A =“M,D,V”,B =“V,M”

我必须拆分(',')这个字符串并比较子字符串。

然后,只有当A和B中存在的子字符串相同且相同时,我才必须执行语句。

请帮我以最佳方式登录。

2 个答案:

答案 0 :(得分:0)

  1. 让我们假设订单很重要,重复也很重要。
  2. E.g。

     // clearly not the same = false
      var A = "M,D,V";
      var B = "V,M";
    // repetition = false
      var A = "M,V";
      var B = "M,V,V";
    // same elements but different order = false
      var A = "M,V";
      var B = "V,M";
    

    然后你可以使用

    var answer = A.Split(',').SequenceEqual(B.Split(','));
    
    1. 如果您想忽略重复,可以添加Distinct方法。
    2. var answer = A.Split(',').Distinct().SequenceEqual(B.Split(',').Distinct());

      在这种情况下,结果将是:

       // clearly not the same = false
        var A = "M,D,V";
        var B = "V,M";
      // repetition = true
        var A = "M,V";
        var B = "M,V,V";
      // same elements but different order = false
        var A = "M,V";
        var B = "V,M";
      

答案 1 :(得分:0)

以下函数只比较两个字符串的长度相等时,它们的顺序不同。 注意:如果字符串的长度不同,则字符串不能相等。

    public static String compare(String str1, String str2)
    {
        String[] strArr1 = str1.Split(',');
        String[] strArr2 = str2.Split(',');
        int itr = 0;
        while (strArr1.Length == strArr2.Length && strArr2.Contains(strArr1[itr]))
        {
            itr++;
            if (itr == strArr1.Length)
            {
                return "The Strings contains same values.";
            }
        }
        return "The Strings does not contain same values.";
    }