У меня есть этот фрагмент кода для получения следующего значения с использованием пространства имен 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);
}
}
Но теперь мне нужно получить еще и предыдущее значение, а я вот не знаю, что делать.