using System;
using System.Collections.Generic;
using System.Linq;
public class Test
{
class MyClass
{
public int Value;
}
private static IEnumerable<MyClass> GenerateEnumerable()
{
yield return new MyClass { Value = 1 };
yield return new MyClass { Value = 2 };
yield return new MyClass { Value = 3 };
}
public static void Main(string[] args)
{
var list = new List<MyClass> { new MyClass { Value = 1 }, new MyClass { Value = 2 }, new MyClass { Value = 3 } };
var enumerable = GenerateEnumerable();
Enumerate(list);
Enumerate(enumerable);
Console.ReadLine();
}
static void Enumerate(IEnumerable<MyClass> enumerable)
{
foreach (var element in enumerable)
{
element.Value += 1;
}
Console.WriteLine(String.Join(", ", enumerable.Select(x => x.Value.ToString()).ToArray()));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CiAgICAgICAgY2xhc3MgTXlDbGFzcwogICAgICAgIHsKICAgICAgICAgICAgcHVibGljIGludCBWYWx1ZTsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgc3RhdGljIElFbnVtZXJhYmxlPE15Q2xhc3M+IEdlbmVyYXRlRW51bWVyYWJsZSgpCiAgICAgICAgewogICAgICAgICAgICB5aWVsZCByZXR1cm4gbmV3IE15Q2xhc3MgeyBWYWx1ZSA9IDEgfTsKICAgICAgICAgICAgeWllbGQgcmV0dXJuIG5ldyBNeUNsYXNzIHsgVmFsdWUgPSAyIH07CiAgICAgICAgICAgIHlpZWxkIHJldHVybiBuZXcgTXlDbGFzcyB7IFZhbHVlID0gMyB9OwogICAgICAgIH0KCiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIHZhciBsaXN0ID0gbmV3IExpc3Q8TXlDbGFzcz4geyBuZXcgTXlDbGFzcyB7IFZhbHVlID0gMSB9LCBuZXcgTXlDbGFzcyB7IFZhbHVlID0gMiB9LCBuZXcgTXlDbGFzcyB7IFZhbHVlID0gMyB9IH07CiAgICAgICAgICAgIHZhciBlbnVtZXJhYmxlID0gR2VuZXJhdGVFbnVtZXJhYmxlKCk7CgogICAgICAgICAgICBFbnVtZXJhdGUobGlzdCk7CiAgICAgICAgICAgIEVudW1lcmF0ZShlbnVtZXJhYmxlKTsKCiAgICAgICAgICAgIENvbnNvbGUuUmVhZExpbmUoKTsKICAgICAgICB9CgogICAgICAgIHN0YXRpYyB2b2lkIEVudW1lcmF0ZShJRW51bWVyYWJsZTxNeUNsYXNzPiBlbnVtZXJhYmxlKQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIGVsZW1lbnQgaW4gZW51bWVyYWJsZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZWxlbWVudC5WYWx1ZSArPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShTdHJpbmcuSm9pbigiLCAiLCBlbnVtZXJhYmxlLlNlbGVjdCh4ID0+IHguVmFsdWUuVG9TdHJpbmcoKSkuVG9BcnJheSgpKSk7CiAgICAgICAgfQp9