Я все еще знакомлюсь с делегатами и лямбдами, я не использую LINQ, и я обнаружил только функцию ConvertAll
сегодня, поэтому я экспериментирую и прошу это, чтобы укрепить свое понимание. 1003 * Передо мной стояла задача установить sh, является ли строка чисел четной или нечетной. Итак, сначала преобразуйте список строк в список int, а оттуда в список bool. Каким бы раздутым ни был код, я подумал, смогу ли я разместить все это в одной строке и уменьшить потребность в дополнительной строке l oop.
string numbers = "2 4 7 8 10";
List<bool> evenBools = new List<bool>(Array.ConvertAll(numbers.Split(' '), (x = Convert.Int32) => x % 2 == 0))
Ожидаемый результат [истина, истина, ложь, истина, истина]. Очевидно, что код не работает.
Я понимаю, что второй аргумент Array.ConvertAll
) требует разговора. От строки к int - это просто Convert.ToInt32
. Можно ли сделать это «на лету» (то есть в левой части лямбда-выражения), чтобы я мог продолжить преобразование типа bool и вернуться вправо?