Если вы хотите более решение проблемы, это будет более подходящим
public static class Extensions
{
public static void ModifyWhere<T>(this List<T> list, Func<T, bool> condition, Func<T, T> act)
{
for (int i = 0; i < list.Count; i++)
{
if (condition(list[i]))
list[i] = act(list[i]);
}
}
}
и это решение не будет конкретным, метод принимает функцию возврата bool в качестве условия и функцию возврата в качестве действия.
пример использования будет следующий
mylist.ModifyWhere(someBoolReturningFunction, someTReturningFunction);