У меня есть 3 массива: a,b,result.в начале result = a.Как можно найти одинаковые элементы массива, типо a = 1,1,2,2. b = 2. то result.Remove(b[i])(будет ли так удалять все элементы 2?);Вот часть кода:
public static int[] ArrayDiff(int[] a, int[] b)
{
List result = new List();
result = a.ToList();
foreach(int i in b)
{
if(//Че тут написать?)
{
result.Remove(b[i]);
Console.WriteLine($"Удалили все элементы со значением: {b[i]} ");
}
}
return result.ToArray();
}
C#
Как можно найти одинаковые элементы массива? С#
иди тоже почитай https://www.youtube.com/watch?v=IF7YRBokJAw
Три-щ Котов! Я же уже дал абсолютно универсальное решение для любых массивов, элементы которых реализуют интерфейс IEquatable. Повторяю для особо альтернативно одаренных:
static T[] ArrayDiff< T >(T[] a1, T[] a2) where T : IEquatable< T >
{
List< T > Result = a1.ToList();
foreach (T x in a2)
Result.RemoveAll(y => y.Equals(x));
return Result.ToArray();
}
static T[] ArrayDiff< T >(T[] a1, T[] a2) where T : IEquatable< T >
{
List< T > Result = a1.ToList();
foreach (T x in a2)
Result.RemoveAll(y => y.Equals(x));
return Result.ToArray();
}
Сергей Петров
А что такое Т? и тут тут функция наследует что то, а нужно чтобы было просто public static int ArrayDiff()
Не совсем понятно что вам нужно, но вот пример удаления дубликатов из списка.
using System;
using System.Collections.Generic;
using System.Linq;
namespace Answer {
class Program {
static void Main() {
var list = new List<int>() {
1, 7, 6, 3, 2, 1, 5, 4, 6, 9, 2, 5, 8, 7, 1
};
foreach (var x in list) Console.Write($" {x} ");
Console.WriteLine();
var result = list.Distinct().ToList();
foreach (var x in result) Console.Write($" {x} ");
Console.WriteLine();
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
namespace Answer {
class Program {
static void Main() {
var list = new List<int>() {
1, 7, 6, 3, 2, 1, 5, 4, 6, 9, 2, 5, 8, 7, 1
};
foreach (var x in list) Console.Write($" {x} ");
Console.WriteLine();
var result = list.Distinct().ToList();
foreach (var x in result) Console.Write($" {x} ");
Console.WriteLine();
Console.ReadKey();
}
}
}
Remove удалит первое вхождение. это мы запомнили
есть массив А и массив В
нужно образовать третий массив С, в котором будет пересечение А и В?
1. определим в каком из этих двух массивов больше элементов
2. начинаем перебирать меньший массив:
берем из него элемент и проверяем, есть ли он в другом массиве (исходном)
если такой элемент там есть, то проверим, нет ли этого элемента еще в результирующем массиве.
если нет, то запишем его туда
и так пересматриваем все элементы массива, который поменьше
и не исключено, что итоговый массив может оказать пуст
есть массив А и массив В
нужно образовать третий массив С, в котором будет пересечение А и В?
1. определим в каком из этих двух массивов больше элементов
2. начинаем перебирать меньший массив:
берем из него элемент и проверяем, есть ли он в другом массиве (исходном)
если такой элемент там есть, то проверим, нет ли этого элемента еще в результирующем массиве.
если нет, то запишем его туда
и так пересматриваем все элементы массива, который поменьше
и не исключено, что итоговый массив может оказать пуст
Похожие вопросы
- C# Массив структур.Конструктор .Доступ к отдельным элементам массива в массиве структур.
- Почему в C# нумерация (индексы) элементов массива начинаются с нуля, а не с единицы?
- C#. Как вернуть индекс определенного элемента массива?Почему ошибка?
- Дана матрица 4x5 . Найти минимальный элемент в строке, номер которой вводится с клавиатуры.
- Написать класс в котором генерируется исключение при делении элементов одного массива на другой размеры которых различны
- Задайте значения M и N. Напишите программу, которая найдёт сумму натуральных элементов в промежутке от M до N.,
- Задача с массивами на С#. Я Создала массив, но он просто выводит повторно то, что я ввела. Как это можно решить?
- Помогите написать программу с массивом на C#
- Массивы. Помогите в долгу не останусь
- Задача массивы c# , прошу помощи...