Да, они выделяют;вот верхняя часть отладчика выделения в devenv:
Name Total (Allocations) Total Size (Bytes)
+ System.Func`1 100002 6400128
| + [Native] 100002 6400128
|| + Program::Main 100002 6400128
||| + Foo::Test 100002 6400128
|||| - Foo::DoTestRun 51190 3276160
|||| - Foo::DoTestRun 48810 3123840
|||| - System.Console.WriteLine(System.String) 2 128
+ Foo.<>c__DisplayClass3_0 100000 2400000
| + [Native] 100000 2400000
|| + Program::Main 100000 2400000
||| + Foo::Test 100000 2400000
|||| - Foo::DoTestRun 51190 1228560
|||| - Foo::DoTestRun 48810 1171440
Это делегаты и экземпляры контекста захвата из Get(() => j + 5)
. Так что да, это выделяет. Является ли это катастрофическим для вашего сценария: многое зависит от вашего сценария.