Создать программу c#

Напишите программу в с#, которая получает три числа и выводит количество одинаковых чисел в этой цепочке.

Пример 1:

Введите три числа:
1 1 1
Все числа одинаковые.

Пример 2:

Введите три числа:
1 2 1
Два числа одинаковые.

Пример 3:

Введите три числа:
1 2 3
Нет одинаковых чисел.
class Program
{
  static void Main(string[] args)
  {
    int a, b, c;
    a = Convert.ToInt32(Console.Read());
    b = Convert.ToInt32(Console.Read());
    c = Convert.ToInt32(Console.Read());

    if (a == b && c == a)
      Console.WriteLine(2);
    else if (a == b)
      { Console.WriteLine(3); }
    else if (b == c)
      { Console.WriteLine(2); }
    else if (a == c)
      { Console.WriteLine(3); }
    else
      Console.WriteLine(0);

    Console.ReadKey();
  }
}

Ответы (1 шт):

Автор решения: Qwertiy
a = Convert.ToInt32(Console.Read());

Console.Read() читает не слово, а символ. Ты код этого символа перегоняешь из числа в число - дело бесполезное.

Читай всю строку и сплить её на слова:

var arr = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries)

можно сразу превратить в числа с помощью int.Parse.

А дальше советую продолжать работать с массивом, а не с 3 переменными.

https://ideone.com/GwngUv

using System;
using System.Linq;

public class Test
{
  public static void Main()
  {
    Console.WriteLine
    (
      Console.ReadLine()
        .Split(" ", StringSplitOptions.RemoveEmptyEntries)
        .Select(int.Parse)
        .Distinct()
        .Count()
    );
  }
}

Исходный ответ:

using System;
using System.Linq;

public class Program
{
  public static void Main(string[] args)
  {
    Console.WriteLine(args.Take(3).Select(int.Parse).Distinct().Count());
  }
}
→ Ссылка