Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/26: Рейтинг темы: голосов - 26, средняя оценка - 4.58
2 / 2 / 0
Регистрация: 24.08.2012
Сообщений: 57

Метод убирающий дубликаты в массиве

09.09.2012, 16:14. Показов 4919. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
 
namespace ArraysTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var intArray = new int[4];
            intArray[0] = 5;
            intArray[1] = 10;
            intArray[2] = 5;
            intArray[3] = 10;
            foreach (var item in intArray) Console.WriteLine(item);
            
            Console.ReadLine();
 
            
        }
    }
}
вот такой вот код имееться. помогите сделать метод убирающий дубликаты
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.09.2012, 16:14
Ответы с готовыми решениями:

Дубликаты в массиве
Ребят с ума сойду не понимаю как сделать чтоб заработала, нужно работать с этим кодом Задача, в первый столб вывести рандомные значения,...

Удалить дубликаты в двумерном массиве
Здравствуйте, есть задача - удалить повторяющиеся значения в двумерном массиве массиве. Как это можно реализовать, при условии, что строк в...

Найти дубликаты в двумерном массиве по парам
10 20 12 20 10 20 14 20 15 30 количество пар = 2 int temp = 0; for (int i = 0; i < a; i++) for (int j = 0; j...

14
 Аватар для xnimor
72 / 72 / 6
Регистрация: 16.06.2012
Сообщений: 220
09.09.2012, 16:21
Используйте лучше HashSet -он исключает повторения
http://msdn.microsoft.com/ru-r... 59438.aspx

А в Вашем примере - необходимо проходить (для каждого элемента) по массиву и удалять повторения... (для такого метода лучше воспользоваться List<int>
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.09.2012, 17:03
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Linq;
using System.Collections.Generic;
 
 
namespace RemoveDoubles
{
    class Program
    {
        static void Main(string[] args)
        {
            var intArray = new int[10];
            intArray[0] = 5;
            intArray[1] = 10;
            intArray[2] = 5;
            intArray[3] = 10;
            intArray[4] = 15;
            intArray[5] = 20;
            intArray[6] = 15;
            intArray[7] = 20;
            intArray[8] = 25;
            intArray[9] = 30;
            foreach (var item in intArray) Console.WriteLine(item);
            Console.WriteLine();
            intArray = RemoveDoubles(intArray);
            foreach (var item in intArray) Console.WriteLine(item);
            Console.ReadLine();
        }
 
        private static T[] RemoveDoubles<T>(IEnumerable<T> array)
        {
            var hashset = new HashSet<T>();
            foreach (var v in array)
                hashset.Add(v);
            return hashset.ToArray();
        }
    }
}
1
2 / 2 / 0
Регистрация: 24.08.2012
Сообщений: 57
09.09.2012, 17:07  [ТС]
блин это не то.. надо чтобы не повторяло а сразу убирало дубликаты(
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.09.2012, 17:20
veronikaonelove, оно сразу и убирает. Достаточно не выводить на экран до того, как убрать. T_T

Добавлено через 7 минут
Не ну можно написать класс ,который изначально не будет давать поставить значение, но вместо него тогда тупо будут нули:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
 
 
namespace ClassNoDoubles
{
    internal class MyArray<T> : IEnumerable<T>
    {
        private readonly T[] _array;
 
 
        public MyArray(int length)
        {
            _array = new T[length];
        }
 
 
        public T this[int i]
        {
            get { return _array[i]; }
            set { if (!_array.Contains(value)) _array[i] = value; }
        }
 
 
        public IEnumerator<T> GetEnumerator()
        {
            return ((IEnumerable<T>) _array).GetEnumerator();
        }
 
 
        IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
    }
 
 
    internal class Program
    {
        private static void Main()
        {
            var intArray = new MyArray<int>(10);
            intArray[0] = 5;
            intArray[1] = 10;
            intArray[2] = 5;
            intArray[3] = 10;
            intArray[4] = 15;
            intArray[5] = 20;
            intArray[6] = 15;
            intArray[7] = 20;
            intArray[8] = 25;
            intArray[9] = 30;
            foreach (var item in intArray) Console.WriteLine(item);
            Console.ReadKey();
        }
    }
}
1
2 / 2 / 0
Регистрация: 24.08.2012
Сообщений: 57
09.09.2012, 17:26  [ТС]
спасибо большое!) а можно ли просто после массива написать какуето команду типо distinct ну чтобы было по проще и код был не таким большим?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.09.2012, 17:29
veronikaonelove, можно. см выше.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Linq;
using System.Collections.Generic;
 
 
namespace RemoveDoubles
{
    class Program
    {
        static void Main(string[] args)
        {
            var intArray = new int[10];
            intArray[0] = 5;
            intArray[1] = 10;
            intArray[2] = 5;
            intArray[3] = 10;
            intArray[4] = 15;
            intArray[5] = 20;
            intArray[6] = 15;
            intArray[7] = 20;
            intArray[8] = 25;
            intArray[9] = 30;
            intArray = RemoveDoubles(intArray);
            foreach (var item in intArray) Console.WriteLine(item);
            Console.ReadLine();
        }
 
        private static T[] RemoveDoubles<T>(IEnumerable<T> array)
        {
            var hashset = new HashSet<T>();
            foreach (var v in array)
                hashset.Add(v);
            return hashset.ToArray();
        }
    }
}
1
2 / 2 / 0
Регистрация: 24.08.2012
Сообщений: 57
09.09.2012, 17:38  [ТС]
спасибо большое!!!
0
2 / 2 / 0
Регистрация: 24.08.2012
Сообщений: 57
09.09.2012, 19:20  [ТС]
C#
1
2
3
4
var hashset = new HashSet<T>();
            foreach (var v in array)
                hashset.Add(v);
            return hashset.ToArray();
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
09.09.2012, 19:26
а массив чего? там - примитивы или что-то посложнее?
0
2 / 2 / 0
Регистрация: 24.08.2012
Сообщений: 57
09.09.2012, 19:28  [ТС]
Цитата Сообщение от novi4ok Посмотреть сообщение
а массив чего? там - примитивы или что-то посложнее?
массив строк .простенький
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
 
namespace ArraysTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var intArray = new int[10];
            intArray[0] = 5;
            intArray[1] = 10;
            intArray[2] = 5;
            intArray[3] = 10;
            intArray[4] = 15;
            intArray[5] = 20;
            intArray[6] = 15;
            intArray[7] = 20;
            intArray[8] = 25;
            intArray[9] = 30;
0
 Аватар для xnimor
72 / 72 / 6
Регистрация: 16.06.2012
Сообщений: 220
09.09.2012, 19:29
C#
1
2
         HashSet<T> hSet = new HashSet<T>(array);
            return hSet.ToArray();
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
09.09.2012, 19:34
C#
1
var nuDuplicates = intArray.Distinct();
???
0
2 / 2 / 0
Регистрация: 24.08.2012
Сообщений: 57
09.09.2012, 19:39  [ТС]
Цитата Сообщение от xnimor Посмотреть сообщение
C#
1
2
         HashSet<T> hSet = new HashSet<T>(array);
            return hSet.ToArray();
не работает((

Добавлено через 1 минуту
Цитата Сообщение от novi4ok Посмотреть сообщение
C#
1
var nuDuplicates = intArray.Distinct();
???
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
 
namespace ArraysTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var intArray = new int[10];
            intArray[0] = 5;
            intArray[1] = 10;
            intArray[2] = 5;
            intArray[3] = 10;
            intArray[4] = 15;
            intArray[5] = 20;
            intArray[6] = 15;
            intArray[7] = 20;
            intArray[8] = 25;
            intArray[9] = 30;
            foreach (var item in intArray) Console.WriteLine(item);
 
 
            var nuDuplicates = intArray.Distinct();
 
 
            Console.ReadLine();
        }
    }
}

ошибку пишет :Ошибка 1 "System.Array" не содержит определения для "Distinct" и не был найден метод расширения "Distinct", принимающий тип "System.Array" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)
0
09.09.2012, 20:31
 Комментарий модератора 
veronikaonelove, Про "метод, убирающий дубликаты" ведите обсуждение в одной теме. А то скоро придется использовать метод, убирающий "ваши дубликаты"
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.09.2012, 20:31
Помогаю со студенческими работами здесь

Удалить дубликаты массивов в двумерном массиве?
Помогите удалить дубликаты массивов в двумерном массиве в одномерном будет так: l = print(list(set(l))) а в двумерном...

Удалить дубликаты в массиве и отсортировать его
Есть строки: a,b,b,c,d,c Нужно получить результат: a,b,c,d

Вывести дубликаты элементов в массиве случайных чисел
Привет. помогите пожалуйста разобраться. Задача: вывести в консоль дубликаты чисел в массиве случайных чисел в диапазоне от 50 до 70. ...

Дубликаты в строковом массиве -исправить ошибку в коде
Здравствуйте, пишу программу не большую, столкнулся с, вроде, и простой проблемой, по логике код должен работать, почему этот код не...

Написать программу, удаляющую дубликаты строк в двумерном массиве
Помогите пожалуйста разобраться с программой: Дан двумерный массив. Рассматривая его построчно, написать программу, удаляющую дубликаты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru