query: 0 4 1 0 0
secquery: 1 1 0 0 3
i need compare elements: 0 , 1, 4 , 1 , 1 , 0 ,0 , 0 , 0 , 3. break stops second foreach.
i try this:
foreach (var in query) { bool flag = false; foreach (var b in secquery) { if (b > a) { count++; } flag = true; break; } if (flag) continue; }
and this:
foreach (var in query) { foreach (var b in secquery) { if (b > a) { count++; } //break; continue; } }
you not need nested loop comparing parallel arrays. need single loop iterates both arrays @ same time - example, index:
for (var = 0 ; != query.length ; i++) { var first = query[i]; var second = secquery[i]; console.writeline("comparing {0} , {1}", first, second); }
the above code assumes both arrays have same number of elements.
you can pair elements using linq's zip
method:
foreach (var p in query.zip(secquery, (first, second) => new {first, second}) { console.writeline("comparing {0} , {1}", p.first, p.second); }
if need count of items in query
greater secquery
, compute this:
var res = query .zip(secquery, (first, second) => first > second) .count(cmp => cmp);
Comments
Post a Comment