Tenho procurado uma maneira de transformar cada elemento de um IEnumerable em outra coisa usando uma função de mapeamento (de uma forma compatível com o Linq), mas não encontrei nada.
Para um exemplo (muito simples), ele deve ser capaz de fazer algo como
IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
IEnumerable<string> strings = integers.Transform(i => i.ToString());
Mas não encontrei nada. Quero dizer, é muito simples escrever um método de extensão que faça isso (basicamente, tudo o que requer é agrupar o enumerador de origem em uma nova classe e, em seguida, escrever um pouco de código clichê para delegar as chamadas a ele), mas eu esperava esta é uma operação bastante elementar, e escrevê-la por mim mesmo parece reinventar a roda - não consigo evitar a sensação de que pode haver uma maneira embutida que eu deveria estar usando, e estou cego demais para ver isto.
Então ... há algo no Linq que me permite fazer o que descrevi acima?