以下の C# コードでは、最初の印刷セットが次の出力を生成するのはなぜですか?
C
C
C
しかし、それに相当するLINQは次の出力を生成します
A
B
C
出力の最初のセットを理解しています - ループを出るときに最後の値を取りますが、従来のループと同等の LINQ の間に一貫性があるべきだと私には思えますか? - どちらの場合も CCC または ABC を出力する必要がありますか?
public static void Main(string[] str)
    {
        List<string> names = new List<string>() {"A", "B", "C"};
        List<Action> actions = new List<Action>();
        foreach(var name in names)
        {
            actions.Add(() => Console.WriteLine(name));
        }
        foreach(var action in actions)
        {
            action.Invoke();
        }
        List<Action> actionList = names.Select<string, Action>(s => () => Console.WriteLine(s)).ToList();
        foreach(var action in actionList)
        {
            action.Invoke();
        }
    }