Задать вопрос
@michadimin

Как реализовать одновременное присваивание и ввод чисел через пробел?

Немного деталей: со Split, ToArray и прочими - я знаком.

Меня интересует конкретный момент: как реализовать одновременное присваивание и ввод чисел через пробел?

В Python, например, можно сделать вот так:
a, b = map(int, input().split((" ")))

Как сделать что-то подобное, но на C#?
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 1
WNeZRoS
@WNeZRoS
Можно сделать так же как в Python:
var (a, b) = Console.ReadLine().Split(" ").Select(int.Parse);


но надо добавить метод деконструкции IEnumerable на 2 элемента:
public static class DeconstructEnumerable
{
	public static void Deconstruct<T>(this System.Collections.Generic.IEnumerable<T> enumerable, out T item1, out T item2)
	{
		using var enumerator = enumerable.GetEnumerator();
		if (!enumerator.MoveNext())
			throw new ArgumentException("not enough values to unpack (expected 2, got 0)", nameof(enumerable));
										
		item1 = enumerator.Current;
										
		if (!enumerator.MoveNext())
			throw new ArgumentException("not enough values to unpack (expected 2, got 1)", nameof(enumerable));
		
		item2 = enumerator.Current;
		
		if (enumerator.MoveNext())
			throw new ArgumentException("too many values to unpack (expected 2)", nameof(enumerable));
	}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы