У меня есть этот кусок кода, чтобы получить следующее значение, используя пространство имен LINQ.Как получить следующие и предыдущие значения?
public static class Extension
{
public static T Next<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
bool flag = false;
using (var enumerator = source.GetEnumerator())
{
while (enumerator.MoveNext())
{
if (flag) return enumerator.Current;
if(predicate(enumerator.Current))
{
flag = true;
}
}
}
return default(T);
}
}
Но теперь, мне нужно также, чтобы получить предыдущее значение, но я здесь, я не знаю, что делать.