creo que el tipo de respuesta que estabas buscando se vería así:
var x = new string[] {"car", "Collection", "Limited", "stackoverflow" };
var output = x.Select(word => String.Join("", word.Take(5).ToList()));
La variable "salida" contiene el resultado :
car
Colle
Limit
stack
a nd la cadena "coche" no arroja una excepción.
Pero mientras que unan y (5) funciona, por lo general es mucho más sencillo de utilizar, como se sugirió en otra respuesta,
subString = word.Substring(0,Math.Min(5,word.Length));
Este último código es más legible y ligero, aunque no hay duda un factor de frescura leve al uso de Linq en una cuerda para tomar los primeros cinco caracteres, sin tener que verificar la longitud de la cuerda.
Usted obtiene la excepción porque el automóvil tiene solo 3 caracteres de largo y está solicitando un SubString de 5 caracteres. –
sí, lo sé. La situación es mucho más complicada, y esto que te he descrito tiene un problema mayor que esta complicada situación :) – user278618
Tan genial como LINQ es (y realmente creo que es genial), ¿cómo es usarlo para esto mejor/más legible que un ciclo foreach "anticuado"? – JMarsch