I do have two arrays:
int[] oddArr = { 11, 9, ... };
int[] evenArr = {4, 2, 8, ... };
I want to check if every items from oddArr is greater than every items from evenArr then we should do some logic.
Like: if(11 > 4 && 11 > 2 && 11 > 8 && 9 > 4 && 9 > 2 && 9 > 8 && ...)
I tried something like this:
for (int i = 0; i < oddArr.Length; i++)
{
for (int j = 0; j < evenArr.Length; j++)
{
if (oddArr[i] > evenArr[j])
{
}
}
}
I would think about the problem differently - for everything in oddArr
to be greater than everything in evenArr
, then the minimum of oddArr
has to be greater than the maximum of evenArr
:
if (oddArr.Min() > evenArr.Max())
(You'll need a using
directive for System.Linq
to bring in the Min
and max
extension methods.)
If you don't want to use Linq
library then you can do it like
int minOdd = oddArr[0];
for (int i = 1; i < oddArr.Length; i++)
{
if(minOdd>oddArr[i])
minOdd = oddArr[i];
}
int maxEven = evenArr[0]
for (int j = 0; j < evenArr.Length; j++)
{
if (maxEven > evenArr[j])
maxEven = evenArr[j];
}
if(minOdd>maxEven)
{
//do someting
}
Logically if every element of oddArr
is greater than every element of evenArr
then minimum number of oddArr
would be greater than maximum number of evenArr
.
While Jon Skeet's answer is the better solution here you can still compare every item from oddArr
to every item from evenArr
using LINQ. Here's how:
var result = oddArr.All(oddItem => evenArr.All(evenItem => evenItem < oddItem));
if(result){
// every item from oddArr > every item from evenArr
// Do something
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.