wierzę rodzaj odpowiedzi szukałeś będzie wyglądać następująco:
var x = new string[] {"car", "Collection", "Limited", "stackoverflow" };
var output = x.Select(word => String.Join("", word.Take(5).ToList()));
Zmienna „wyjście” zawiera wynik :
car
Colle
Limit
stack
a a ciąg "samochód" nie rzuca wyjątku.
Ale jednocześnie Dołącz i Take (5) działa, to na ogół znacznie prostszy w obsłudze, jak sugerowano w innej odpowiedzi,
subString = word.Substring(0,Math.Min(5,word.Length));
Drugi kod jest bardziej czytelny dla człowieka i lekki, choć nie jest z pewnością niewielki współczynnik chłodu, aby użyć Linq na ciągu znaków, aby uzyskać pierwszych pięć znaków, bez konieczności sprawdzania długości napisu.
Otrzymujesz wyjątek, ponieważ samochód ma tylko 3 znaki i prosisz o SubString składający się z 5 znaków. –
tak, wiem. Sytuacja jest znacznie bardziej skomplikowana, a to, co wam opisałem, ma największy problem, który stanowi tę skomplikowaną sytuację :) – user278618
Tak fajny jak LINQ (i naprawdę myślę, że jest fajny), jak go używać do tego lepszego/bardziej czytelnego niż "staroświecka" pętla foreach? – JMarsch