Select transforms each value into a new value.

Select `Select` maps each input value to an output value.

Select Projection

suffix
SelectProjection.cs
Replay: real traced execution (multi-file project)
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        string suffix = "!";
        string[] names = { "Ada", "Ben" };
        string[] labels = names.Select(name => name + suffix).ToArray();
        string joined = string.Join(",", labels);

        Console.WriteLine($"suffix={suffix}");
        Console.WriteLine($"labels={joined}");
    }
}
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        string suffix = "?";
        string[] names = { "Ada", "Ben" };
        string[] labels = names.Select(name => name + suffix).ToArray();
        string joined = string.Join(",", labels);

        Console.WriteLine($"suffix={suffix}");
        Console.WriteLine($"labels={joined}");
    }
}
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        string suffix = ".";
        string[] names = { "Ada", "Ben" };
        string[] labels = names.Select(name => name + suffix).ToArray();
        string joined = string.Join(",", labels);

        Console.WriteLine($"suffix={suffix}");
        Console.WriteLine($"labels={joined}");
    }
}
  1. suffix ← !, joined ← Ada!,Ben!

    5{6    static void Main()7    {8        string suffix→ ! = "!"; //@suffix="?", "."9        string[] names = { "Ada", "Ben" };10        string[] labels = names.Select(name => name + suffix).ToArray();11        string joined→ Ada!,Ben! = string.Join(",", labels);1213        Console.WriteLine($"suffix={suffix!}");14        Console.WriteLine($"labels={joinedAda!,Ben!}");15    }
    outputsuffix=!
    labels=Ada!,Ben!
  1. suffix ← ?, joined ← Ada?,Ben?

    5{6    static void Main()7    {8        string suffix→ ? = "?";9        string[] names = { "Ada", "Ben" };10        string[] labels = names.Select(name => name + suffix).ToArray();11        string joined→ Ada?,Ben? = string.Join(",", labels);1213        Console.WriteLine($"suffix={suffix?}");14        Console.WriteLine($"labels={joinedAda?,Ben?}");15    }
    outputsuffix=?
    labels=Ada?,Ben?
  1. suffix ← ., joined ← Ada.,Ben.

    5{6    static void Main()7    {8        string suffix→ . = ".";9        string[] names = { "Ada", "Ben" };10        string[] labels = names.Select(name => name + suffix).ToArray();11        string joined→ Ada.,Ben. = string.Join(",", labels);1213        Console.WriteLine($"suffix={suffix.}");14        Console.WriteLine($"labels={joinedAda.,Ben.}");15    }
    outputsuffix=.
    labels=Ada.,Ben.