Я нахожусь в процессе изучения дополнительных сведений о выражениях LINQ и Lambda, но на данном этапе я просто не "получаю" выражения Lambda.
Да ... Я новичок в этих новых понятиях.
Я имею в виду, что каждый пример, который я вижу, иллюстрирует, как добавлять или вычитать параметры.
Как насчет чего-то более сложного?
Чтобы помочь мне лучше понять, я отправил небольшую задачу для всех, кто хочет участвовать. У меня есть следующий метод, который будет принимать любую строку и ставить пробелы между любыми символами верхнего регистра и их предшествующим соседом (как показано ниже).
1011 * т.е. *
"SampleText" = "Образец текста"
"DoesNotMatterHowManyWords" = "Не важно, сколько слов"
Вот код;
public static string ProperSpace(string text)
{
var sb = new StringBuilder();
var lowered = text.ToLower();
for (var i = 0; i < text.Length; i++)
{
var a = text.Substring(i, 1);
var b = lowered.Substring(i, 1);
if (a != b) sb.Append(" ");
sb.Append(a);
}
return sb.ToString().Trim();
}
Я уверен, что описанный выше метод можно переписать для использования с LINQ или лямбда-выражением. Я надеюсь, что это упражнение поможет мне открыть глаза на эти новые концепции.
Также, если у вас есть хорошие ссылки на учебные пособия по LINQ или Lambda, пожалуйста, предоставьте.
EDIT
Спасибо всем, кто внес свой вклад. Хотя текущий метод выполняет свою работу, я рад видеть, что его можно изменить, чтобы использовать лямбда-выражение. Я также признаю, что это, возможно, не лучший пример для LINQ.
Вот недавно обновленный метод, использующий лямбда-выражение (проверено на работу);
public static string ProperSpace(string text)
{
return text.Aggregate(new StringBuilder(), (sb, c) =>
{
if (Char.IsUpper(c)) sb.Append(" ");
sb.Append(c);
return sb;
}).ToString().Trim();
}
Я также ценю множество ссылок на другие (похожие) темы.
В частности эта тема , что так верно.