I have a list of objects which all have an id property
E.g
1, 10, 25, 30, 4
I have a currentId and I need to find the next Id in the list
So
Without re-ordering (note I edit slightly as I think I misread the question):
int[] data = {1, 10, 25, 30, 4};
int last = 25;
var next = data.SkipWhile(i => i != last).Skip(1).First();
Obviously, if data was a set of objects, something like:
var next = data.SkipWhile(obj => obj.Id != last).Skip(1).First();