如何比较两个char[]数组是否相等
本文关键字:数组 是否 char 何比较 比较 两个 | 更新日期: 2023-09-27 18:13:03
现在,我有两个char
数组,foo1[]
和foo2[]
。当我将它们转换为字符串并输出到控制台时,它们都显示为bar
。我知道我可以这样做:
int g;
for (int i=0;i<length.foo1;i++) { // loop from 0 to length of array
if (foo1[i]=foo2[i]) { // if foo1[0] and foo2[0] are the same char
g++; // increment a counter by 1
}
else // otherwise...
{
i=100; // set i to something that will halt the loop
}
if (g = length.foo1) { // if the incremented counter = length of array
return true; // arrays are equal, since g only increments
} // in the case of a match, g can ONLY equal the
else { // array length if ALL chars match
return false; // and if not true, false.
来逐个字母比较它们,但我猜有更简单的方法。有趣的是,大多数谷歌我做的comparing char[] for eqivalency c#
和类似的关键字结果在整个混乱的信息关于比较字符串数组,或比较字符串或字符数组时,部分数组匹配的东西或另一个…我还没有找到任何简单的方法来测试字符数组是否相等。逐级遍历每个数组是最好的方法吗?或者是否有办法比较如果foo1=foo2或foo1==foo2?这两种方法都不适合我。
基本上,我需要测试char foo1[]
和char foo2[]
是否都是{B,A,R}
您可能正在寻找:
foo2.SequenceEqual(foo1)
我认为您可以使用SequenceEquals来比较数组,即使首先检查两个长度具有更好的性能。
foo1.ToList().Intersect(foo2.ToList())
你可以创建一个你自己的函数,这将比首先将char[]转换为字符串然后比较两个字符串更快。1. 首先比较数组的长度,如果它们不相等,则返回false。2. 开始循环并比较每个字符,如果发现有差异则返回false,否则循环后返回true。
if(foo1.Length != foo2.Length){ return false;}
for(int i=0;i<foo1.Length;i++){
if(foo1[i] != foo2[i]){ return false;}
}
return true;
string s = new string(foo1);
string t = new string(foo2);
int c = string.Compare(s, t);
if(c==0){
//its equal
}