Получить новый массив, удалив из исходного элементы, равные введённому пользователю числу k - C#
Формулировка задачи:
Получить новый массив, удалив из исходного элементы, равные введённому пользователю числу k
Вот, как я делаю:
мне необходимо получить копию исходного массива, в котором удалятся элементы, равные введённому пользователю числу k.
1) сначала я указываю размерность n массива
2) затем прошу программу сгенерировать случайный массив, состоящий из n элементов
3) далее я выполняю копию этого рандомного массива. Но мне нужно, чтобы в этой копии удалились все элементы, равные предварительно введённому числу k. Если использовать for (int j = 0; j < arr.Length-k; j++)
удали (-я) тся число(-а) справа на это число k. Например, в массиве {1;2;1;3;7;8;} при введённом k=1 удалится число 8. В этом же массиве, если ввести k=3, удалятся элементы 8;7;3. Мне же нужно удалить при введённом k=1 все единицы и получить новый массив {2;3;7;8}. Либо если ввести k=3 удалить тройку и получить новый массив {1;2;1;7;8}. Помогите, ПОЖАЛУЙСТА!
Console.WriteLine("Введите количество элементов:");
Console.Write("n=");
int n = Convert.ToInt32(Console.ReadLine());
int[] arr = new int[n];
Random gena = new Random();
for (int i = 0; i < arr.Length; i++)
{
int random = gena.Next(0, 15);
arr[i] = random;
Console.Write(arr[i]);
}
Console.WriteLine();
Console.WriteLine("Введите число k:");
int k = Convert.ToInt32(Console.ReadLine());
int z = arr.Length;
int[] arrCopy = new int[z];
for (int j = 0; j < arr.Length-k; j++)
{
arrCopy[j] = arr[j];
Console.Write(arrCopy[j]);
}Решение задачи: «Получить новый массив, удалив из исходного элементы, равные введённому пользователю числу k»
textual
Листинг программы
int[] arr = { 1, 3, 5, 1, 4, 3, 1, 2, 6, 4, 2 }; //исходный массив
int n = 1; //число, которое из массива нужно удалить
int[] arr2 = arr.Where(x => { return x!= n; }).ToArray(); //новый массив