I have an array of objects that\'ll be used for some process.
var x = new List() { new MyObject(), new MyObject(), ... }.ToArray();
Well, you can use Zip to pair them up:
var pairs = x.Zip(y, (a, b) => new { a, b })
.Where(pair => !pair.b.IsOkay)
.ToArray();
You can change the delegate passed to Zip
to compose the two values differently if you want - for example, using a named type instead of the anonymous type I've got above.