我有兩個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