我有两个int数组作为C#如何比较INT阵列部分
int[] aArray = {1,2,3,4}
int[] bArray= {1,2,3,4,5,6}
我想检查数组bArray拥有相同的序列
有人知道更好的解决方案aArray的所有元素?
我有两个int数组作为C#如何比较INT阵列部分
int[] aArray = {1,2,3,4}
int[] bArray= {1,2,3,4,5,6}
我想检查数组bArray拥有相同的序列
有人知道更好的解决方案aArray的所有元素?
如果你只是想知道,如果第二个是包含所有int
S中的第一阵列的:
hasBA = !aArray.Except(bArray).Any();
或HashSet
这也是:
bool hasBA = aArray.All(bArray.Contains);
使用Except
+ Any
可能更有效高效:
HashSet<int> set = new HashSet<int>(aArray);
bool isSubset = set.IsSubsetOf(bArray);
谢谢蒂姆,最好的答案并为我工作。 – kiran 2014-10-31 11:15:15
int[] aArray = {1,2,3,4};
int[] bArray = { 1, 2, 3, 4, 5, 6 };
bool containsAndSameOrder = true; // this is the variable that will let you know if array bArray has all the elements of aArray in same sequence
if (aArray.Length > bArray)
containsAndSameOrder = false;
else
{
for (int i = 0; i < aArray.Length; i++)
{
if (aArray[i] != bArray[i])
{
containsAndSameOrder = false;
break;
}
}
}
谢谢你,正确的答案,但更冗长。 – kiran 2014-10-31 11:16:02
不客气:)) – 2014-10-31 11:18:38
你试过了什么? – Bas 2014-10-31 11:01:36
您是指从数组开头(如示例)开始连续的相同顺序中的所有元素,数组中连续的任何位置,还是数组中相同顺序中的所有元素(带有可选间隙)? – Guffa 2014-10-31 11:08:42
以相同的顺序,但在阵列中的任何地方 – kiran 2014-10-31 11:17:16