Да, мы делаем это путем хранения нашего SQL как части нашей сборки - мы сохраняем DROP.sql, CREATE.sql, USERS.sql, VALUES.sql и управление версиями ими, таким образом, мы можем вернуться назад к любой теговой версии.
у Нас также есть задачи Ant, которые могут воссоздать дб при необходимости.
Плюс, SQL тогда отмечен наряду с Вашим исходным кодом, который идет с ним.
Я не вижу в этом практического применения, но просто для развлечения:
new string(Enumerable.Range(1, input.Length).Select(i => input[input.Length - i]).ToArray())
var reversedValue = value.ToCharArray()
.Select(ch => ch.ToString())
.Aggregate<string>((xs, x) => x + xs);
Вариант с рекурсивной лямбдой:
var value = "reverse me";
Func<String, String> f = null; f = s => s.Length == 1 ? s : f(s.Substring(1)) + s[0];
var reverseValue = f(value);
LP, Деян
Ну, я могу сделать это за один раз длинная строка, даже без использования LINQ или лямбды:
string original = "reverse me"; char[] chars = original.ToCharArray(); char[] reversed = new char[chars.Length]; for (int i=0; i < chars.Length; i++) reversed[chars.Length-i-1] = chars[i]; string reversedValue = new string(reversed);
(Уважаемые потенциальные редакторы: не не разворачивайте это на несколько строк. Все дело в том, что это одна строка, как указано в предложении над ней и вопрос.)
Однако, если бы я увидел, что кто-то избегает использования методов фреймворка ради этого, я бы поставил под сомнение их здравомыслие.
Обратите внимание, что здесь вообще не используется LINQ. Ответ LINQ будет таким:
string reverseValue = new string(original.Reverse().ToArray());
Избегать использования Reverse, но вместо этого использовать OrderByDescending:
string reverseValue = new string(original.Select((c, index) => new { c, index })
.OrderByDescending(x => x.index)
.Select(x => x.c)
.ToArray());
Blech. Однако мне нравится ответ Мехрдада. Конечно, все это гораздо менее эффективно, чем прямой подход.
О, и все они тоже ошибочны. Обратить строку сложнее, чем изменить порядок кодовых точек. Рассмотрите возможность комбинирования символов, суррогатных пар и т. Д.
Вы можете использовать Aggregate
для добавления каждого Char
к перевернутой строке:
"reverse me".Aggregate("", (acc, c) => c + acc);