- 1
- 2
- 3
- 4
- 5
- 6
public static string CapitalizeFirstLetter(this string s)
{
if (String.IsNullOrEmpty(s))
throw new ArgumentException("Stirng is empty");
return s.First().ToString().ToUpper() + String.Join("", s.Skip(1));
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+143
public static string CapitalizeFirstLetter(this string s)
{
if (String.IsNullOrEmpty(s))
throw new ArgumentException("Stirng is empty");
return s.First().ToString().ToUpper() + String.Join("", s.Skip(1));
}
не ищем легких путей
hometwo 07.05.2014 22:28 # −15
tirinox 07.05.2014 22:44 # −1
hometwo 07.05.2014 22:58 # −11
WGH 07.05.2014 23:06 # 0
tirinox 08.05.2014 08:46 # 0
guest 07.05.2014 23:22 # −6
tirinox 08.05.2014 08:46 # 0
eth0 08.05.2014 20:44 # +1
Правильно:
См. рис. 1
tirinox 08.05.2014 08:45 # +4
WGH 08.05.2014 12:18 # −1
P.S. Не минусовал.
bormand 08.05.2014 05:48 # 0
А в шарпе есть легкие пути (какая-нибудь готовая функция)?
Smekalisty 08.05.2014 10:10 # 0
char.ToUpper(s[0]) + s.Substring(1);
Все стянуто отсюда:
http://stackoverflow.com/questions/4135317/make-first-letter-of-a-string-upper-case
kipar 08.05.2014 10:54 # 0
>в других языках
В Ruby все есть!
http://ideone.com/u1FiQt
Lure Of Chaos 08.05.2014 11:30 # +2
http://www.php.net/manual/ru/function.ucfirst.php
и даже более того
http://www.php.net/manual/ru/function.ucwords.php
bormand 08.05.2014 11:00 # 0
koodeer 08.05.2014 12:18 # +1
roman-kashitsyn 08.05.2014 12:20 # +5
koodeer 08.05.2014 12:41 # 0
Lure Of Chaos 08.05.2014 09:56 # 0
bormand 08.05.2014 10:06 # +4
3.14159265 08.05.2014 14:21 # +2
Правда больше рнр-вей, т.к. на сайте много раз были примеры где пыхапешники инсертили, сортировали и выбирали.
bormand 08.05.2014 20:49 # 0
Ну да, в труъ enterprise-level решении на жабе этот CapitalizeFirstLetter нужно вызывать не напрямую, а через HTTP/XML или SOAP интерфейс.
Ну и connection pooling конечно же нужно добавить...
bormand 08.05.2014 20:59 # 0
hometwo 08.05.2014 12:20 # −19
Lure Of Chaos 08.05.2014 12:55 # +6
hometwo 08.05.2014 12:56 # −15
Lokich 08.05.2014 12:58 # 0
hometwo 08.05.2014 13:06 # −7
myaut 08.05.2014 14:50 # +3
Lure Of Chaos 08.05.2014 13:09 # +11
Lokich 08.05.2014 14:38 # −1
laMer007 11.05.2014 00:45 # 0
laMer007 11.05.2014 11:08 # 0
laMer007 11.05.2014 11:18 # 0
bormand 11.05.2014 11:21 # +1
laMer007 11.05.2014 11:25 # 0
bormand 11.05.2014 11:35 # +2
laMer007 11.05.2014 11:53 # 0
bormand 11.05.2014 13:21 # +2
laMer007 11.05.2014 14:27 # 0
Конструкция явно не сишарпная куда ни глянь. о_О
bormand 11.05.2014 14:46 # +1
Ну я с сишарпом на Вы, поэтому не особо удивился такой форме тернарника. Вот отсутствие скобок смутило, да. И точки перед [] тоже.
Кстати, а почему в F# перед [] ставится точка? Для общности?
laMer007 11.05.2014 14:55 # 0
bormand 11.05.2014 15:02 # 0
Хм. Ленивый надеюсь?
UPD: Судя по [1..] - всяко ленивый.
laMer007 11.05.2014 15:09 # 0
Но зачем?
F# энергичный язык. Самое ленивое что есть в стандартной библиотеке это seq{...} - блок итераторов (IEnumerable)
В местном бусте для фшарпа (PowerPack) есть LazyList но он смотрится как школьная поделка впихнутая со стороны.
bormand 11.05.2014 15:15 # +1
А как [1..] может быть не ленивым? Он же бесконечен и никак не влезет в память.
laMer007 11.05.2014 15:20 # 0
bormand 11.05.2014 15:21 # +1
Дык s.[1..] это специальный синтаксис для слайсов, или же туда любой список канает?
P.S. Могу ли я просто написать a = [1..], и что при этом произойдет? Получится кровь-кишки-распидорасило (память кончилась при построении списка), или просто ленивый список (аля IEnumerable)?
laMer007 11.05.2014 15:26 # 0
Не особо знаю язык, но даже seq{1..} не сработало:
http://ideone.com/ZZYDOt
laMer007 11.05.2014 15:27 # 0
Ленивый список и энумерейбл совсем разные вещи.
bormand 11.05.2014 15:30 # +1
Ну не совсем. Ленивый иммутабельный список (если бы он был) вполне мог бы реализовывать интерфейс IEnumerable.
> .[1..] только для слайсов.
Ясно. Жаль. А хотя бы s.[1..5,6..9,11,15] можно написать?
laMer007 11.05.2014 15:38 # 0
bormand 11.05.2014 15:44 # +2
Прикольно. А слайс это копия или же вьюха оригинальной коллекции? Через него можно что-то поменять в оригинале?
Что-то в духе x[1:2] = [4,5,6], как в питоне.
laMer007 11.05.2014 15:49 # 0
Похоже вьюха. я хз как оно работает.
laMer007 11.05.2014 15:44 # 0
Например obj.% param эквивалентно obj % param
Или x -> y эквивалентно (x,y). Очевидно первое для введения операторов, а второе для красоты генерации мапов.
Voittamaton 12.05.2014 19:47 # 0