如何比较字符串和bool数组?

时间:2011-04-22 14:26:57

标签: c#

我有两个数组如下:

_user string[3] containing "true" "true" and "true"
_test  bool[3] containing true true false

阵列中元素的数量因运行而异。我的问题是我如何比较这两个数组中的值,如果元素一对一匹配则返回true。

希望有人可以提供帮助,因为我的C#并不是很好。

4 个答案:

答案 0 :(得分:13)

使用bool.Parse将字符串转换为bool,使用SequenceEqual来比较序列:

if (_user.Select(bool.Parse).SequenceEqual(_test))
{
    ...
}

答案 1 :(得分:1)

       bool equal=true;  
       for(int i=0;i<3;i++)
        {
         if (!( _user[i].equals(Convert.ToString(_test[i]))))
         {
             equal=false;
             break; 
         }

        }

 equal=true;  
 for(int i=0;i<3;i++)
            {
              if !(_test[i]==Convert.ToBoolean(_user[i])))
                  {
                     equal=false;
                     break;
                  } 

        }

答案 2 :(得分:0)

不是LINQiest,但在这种情况下,必要的解决方案非常明确:

bool TestItems() {
  for (int i = 0; i < Math.Min(_user.Length, _test.Length); i++) {
    if (_test[i] != (_user[i] == "true")) {
      return false;
    }
  }
  return true;
}

应该注意的是,在没有任何澄清的情况下,这假设两者的长度相同,并且不均匀的数组长度将忽略较小数组的边界之外的元素。

答案 3 :(得分:0)

            bool [] array1 = {true,false, true};
            bool[] array2 = { true, true, true };
            bool result = false;
            for (int index = 0; index < array1.Length && index < array2.Length; index++)
            { 
                result = CheckTrueOrNot(array1[index],array2[index]);
                Console.WriteLine(result.ToString());
            }

        private bool CheckTrueOrNot(bool value1, bool value2)
        {
            bool comparisonVal = false;
            if (value1.CompareTo(value2) == 0)
            {
                comparisonVal = true;
            }

            return comparisonVal;
        }