Предположим, что SomeMethod
имеет подпись
public IEnumerable<T> SomeMethod<T>();
, есть ли разница между
foreach (T tmp in SomeMethod<T>()) { ... }
и
IEnumerable<T> result = SomeMethod<T>();
foreach (T tmp in result) { ... }
Другими словами, будут ли результаты SomeMethod
кэшироваться в первом операторе или они будут оцениваться на каждой итерации?