Memory allocation when using foreach loops in C#

I know the basics on how foreach loops work in C# (How do foreach loops work in C#) I am wondering whether using foreach allocates memory that may cause garbage collections? (for all built in System