powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
41 сообщений из 41, показаны все 2 страниц
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38988937
Slant-shadow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Можете помочь написать такой алгоритм, нужно в одном массиве найти повторяющиеся элементы, а затем вставить в другой массив только уникальные элементы из первого массива.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38988939
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
      var arr = new[] { 3, 4, 8, 7, 4, 2, 3 };

      var arr1 = arr
        .GroupBy(n => n, (n, m) => new { Key = n, Cnt = m.Count() })
        .Where(n => n.Cnt > 1)
        .Select(n => n.Key)
        .ToArray();

      var arr2 = arr
        .GroupBy(n => n, (n, m) => new { Key = n, Cnt = m.Count() })
        .Where(n => n.Cnt == 1)
        .Select(n => n.Key)
        .ToArray();

      Console.WriteLine(string.Join(",", arr1));
      Console.WriteLine(string.Join(",", arr2));
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38988946
Slant-shadow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без использования Linq нужно
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38988947
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slant-shadowБез использования Linq нужноогласите весь список "без использования", пожалуйста. А то может без использования C# нужно. Хотя может быть нужно сделать без чужой помощи, самому?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38988988
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однопроходный цикл - без группировок и пересортировок - минимальный расход времени и ресурсов
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  
           int[]  arr={325,3245,5,54325,5,465326,7,214,325, 7} ;

            List<int> uniq = new List<int>(); // список уникальных
            List<int> dbls = new List<int>(); // список неуникальных
            for (int i = 0; i < arr.Length; i++)
            {
                if(  !uniq.Contains(arr[i]) )
                { //если нет ни в одном списке  - заносится в уникальный
                    if( !dbls.Contains(arr[i])) { uniq.Add(arr[i]);}
                }
                else 
                {  //если уже есть в списке уникальных
                   //- удаляется оттуда и вносится в список неуникальных но только один раз
                    uniq.Remove(arr[i]) ;
                    dbls.Add(arr[i]) ;
                }
            }

            int[] arr_uniq = uniq.ToArray();



Для фанатов генериков - код внутри for(){...} можно вынести в отдельную Action,
и вместо наглядного цикла использовать однострочную Array.Foreach

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
       static  void CheckUinq(int val, ref List<int> auniq, ref List<int> adbls)
        {
            if (!auniq.Contains(val))
            { //если нет ни в одном списке  - заносится в уникальный
                if (!adbls.Contains(val)) { auniq.Add(val); }
            }
            else
            {  //если уже есть в списке уникальных
               //- удаляется оттуда и вносится в список неуникальных но только один раз
                auniq.Remove(val);
                adbls.Add(val);
            }
        }
...

     Array.ForEach<int>(arr, v => CheckUinq(v, ref  uniq, ref dbls));
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38988989
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сортируешь и идешь последовательно, если текущий равен предыдущему - пропускаешь.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38988990
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TСортируешь и идешь последовательно, если текущий равен предыдущему - пропускаешь.

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

Но стоит отметить, что
- пересортировка больших массивов - это время и ресурсы.
- полностью теряется исходная последовательность чисел в массиве - во многих прикладных задачах (вычисление корреляций, криптоанализ) - это недопустимо
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38988995
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVполностью теряется исходная последовательность чисел в массиве
не увидел подобного требования в условиях задачи
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38988998
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVDima TСортируешь и идешь последовательно, если текущий равен предыдущему - пропускаешь.

Почитайте условие задачи - отбрасываются не просто повторные, а неуникальные .
Поэтому ваше условие надо дополнить
если текущий равен предыдущему или последующему - пропускаешь
Хоть 100500 подряд одинаковых. Достаточно текущий с предыдущим сравнить. Последующий станет текущим на следующем шаге.

ZhVНо стоит отметить, что
- пересортировка больших массивов - это время и ресурсы.
Тупой перебор это еще больше времени и ресурсов. Дешевле сначала отсортировать.
ZhV- полностью теряется исходная последовательность чисел в массиве - во многих прикладных задачах (вычисление корреляций, криптоанализ) - это недопустимо
Если недопустимо, то сначала копия потом ее сортируй. Или строй индекс.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38989001
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TХоть 100500 подряд одинаковых. Достаточно текущий с предыдущим сравнить. Последующий станет текущим на следующем шаге.

Оцените сами - вот пример отсортированной последовательности
0 - 345 - не равен предыдущему - true
1 - 456 - не равен предыдущему - true
2 - 456 - равен предыдущему - false
3 - 467 - не равен предыдущему - true

Итак - число 456 с индексом 1 - условие выполняется, но число то не уникально в последовательности и условие задачи не выполняется

Dima TТупой перебор это ...

Array.Contains работает на "нижайшем уровне" - команды ассемблера scasb или scasw (сканирование области памяти на поиск совпадений) работают очень быстро.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38989015
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slant-shadow,
перегони свой массив в HashSet<T> и получишь в нем уникальные, надо знать фундаментальные типы гы
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38989017
eny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eny
Гость
Короче, создаем HashSet, в конструктор передаем исходный массив и вуаля - в HashSet е только уникальные значения
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38989028
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилZhVполностью теряется исходная последовательность чисел в массиве
не увидел подобного требования в условиях задачи

В данном случае - да. Это студенческая задача.
Но на эту ему есть классические практические задачи
1) поиск уникальной последовательности максимальной и минимальной длины (M-последовательности) для заданной "большой" последовательности - задача из криптографии

2) поиск авто- и кросс-корреляций в последовательностях - разнообразные аналитические задачи от ядерной физики до фундаментального анализа сток-маркета.


Кстати - попробуйте на досуге "отсортировать" последовательность данных, поступающую со скоростью в десятки мегабайт в секунду. А это вполне нормальный поток для современных спектроанализаторов или томографов.
Хотя... конечно "по жизни" эти задачи решаются не на C#, и даже не на скалярных "процессорах общего назначения".
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38989042
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enyКороче, создаем HashSet, в конструктор передаем исходный массив и вуаля - в HashSet е только уникальные значения

Ух ты. То что надо.
Но если я правильно понял - HashSet включает также и неуникальные значения исходной последовательности - но только один раз, поэтому в самом HashSet-е они уникальны.
Наверное, проблему можно решить компаратором, который можно "правильно" нарисовать самому ?
Или сделать исключение HashSet-а из исходной последовательности, а результат (множество) исключить из HashSet-а ?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38989065
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело было вечером... (с)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
            int[]  arr = {325,3245,5,54325,5,465326,7,5,214,325, 7} ;

            HashSet<int> hs = new HashSet<int>(arr); // Все значения но по одному разу
            List<int> lst = new List<int>(hs);       // Склонировать в список 

            // исключить из HashSet те, которые в исходном списке больше одного раза
            hs.RemoveWhere(v =>  Array.IndexOf<int>(arr,v) != Array.LastIndexOf<int>(arr,v) );
            //исключить из клон-списка те, которые установлены  в HashSet-е в качестве уникальных значений
            lst.RemoveAll(v => hs.Contains(v));
 //В принципе - все. Можно использовать HashSet и List для дальнейшей обработки

            int[] ar_uniq = new int[hs.Count];
            hs.CopyTo(ar_uniq);                 // Массив уникальных значений
            int[] ar_notuniq = lst.ToArray();   // Массив неуникальных значений

//Визуализация результата
            string s_uniq    = "cnt=" + ar_uniq.Length.ToString();
            string s_notuniq = "cnt=" + ar_notuniq.Length.ToString(); 
             Array.ForEach<int>(ar_uniq, v => s_uniq += " " + v.ToString());
             Array.ForEach<int>(ar_notuniq, v => s_notuniq += " "+ v.ToString());
//    s_uniq = "cnt=4  3245 54325 465326 214"
// s_notuniq = "cnt=3  325 5 7"
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #38989151
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVно число то не уникально в последовательности и условие задачи не выполняется
Извиняюсь, вчера немного недопонял условия. Но и это решаемо небольшой доработкой: при нахождении повтора удалить последний элемент из результата.

ZhVArray.Contains работает на "нижайшем уровне" - команды ассемблера scasb или scasw (сканирование области памяти на поиск совпадений) работают очень быстро.
1. Эти команды работают с данными размера 1/2/4 байта, т.е., например, для строки в 10 байт это неприменимо.
2. Если не путаю: C# не гарантирует что массив займет непрерывный кусок памяти.
3. Наивно думать что одна "магическая" команда процессора даст резкий прирос производительности.

Вобщем надо тестить все варианты на скорость и потребление памяти.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39523685
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня смежный вопрос: было у меня когда то задание на нахождение уникальных элементов в матрице, которое может снова мне попастся. Условие точно не помню. Но надо было найти уникальные элементы (или повторяющее) в стовпцах/строках матрицы. Может в условие бы предусмотрено что количество этих элементов должно быть однаковым в стовпцах. Я тогда брался создавать лист этих элементов, делать траверс по колонке, и потом должен был сравнивать с листом других(ой) колонок но ничего хорошего не вышло из этого - попросту не хватило времени. Можно ли в этом случае применить Set - Hashset (), SortedSet() без переопределение методов hashcode(), equals() (C#). Меня интересует общий подход к решение таких задач когда сперва надо определить некие элементы в колонке, а потом сравнивать с другими столбцами?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39523704
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stutУ меня смежный вопрос: было у меня когда то задание на нахождение уникальных элементов в матрице, которое может снова мне попастся. Условие точно не помню. Но надо было найти уникальные элементы (или повторяющее) в стовпцах/строках матрицы. Может в условие бы предусмотрено что количество этих элементов должно быть однаковым в стовпцах. Я тогда брался создавать лист этих элементов, делать траверс по колонке, и потом должен был сравнивать с листом других(ой) колонок но ничего хорошего не вышло из этого - попросту не хватило времени. Можно ли в этом случае применить Set - Hashset (), SortedSet() без переопределение методов hashcode(), equals() (C#). Меня интересует общий подход к решение таких задач когда сперва надо определить некие элементы в колонке, а потом сравнивать с другими столбцами?
Если коротко то:
Для структур и анонимных классов метод GetHashCode() можно не переопределять, он будет работать из коробки.
Если поля структуры или свойства анонимного класса совпадают, то их хеш сумма будет совпадать и они будут эквивалентны. (Если конечно метод не переопределён)
Для классов если метод не переопределен, то используется метод по умолчанию, который возвращает указатель на объект.
Если переопределяете метод GetHashCode, необходимо переопередилть его собрата Equals
любой 2мерный массив можно представить как одномерный
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39523727
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задание скорее из элементарного програмирования - манипуляции из 2ерным масивов. Лист принял как динамичный масив, в котором неизвестно заведомо количество элементов. Set должен работать с уникальными элементами - но имеет он методы типа subsetof()/intersectwith(), но специального метода distinct не существует, да и добавление дубликата даже не вызывает исключение кажется.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39524530
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да задание появилось на бис. Вообще условие достаточно простое: найти столбцы матрицы с однаковими сетами (множествами) чисел. Только вот вопрос -- возможно ли это реализировать без колекций List и HashSet? То есть достаточно ли здесь лиш процедурного подхода и масивов?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39524531
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использовал Лист Хешсетов (чисел типа doublе). Кроме других мелких прорехов сравнивал эти хешсеты выдобутые из листа посредством hashset_a.equals(hashset_b), что наверное неправильно?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39525291
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так правильный мой подход в принципе или нет? Правильно ли его применять в этом случае, есть ли он самый простой? Или можно обойтись лиш одними масивами без колекций?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39525304
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesДля классов если метод не переопределен, то используется метод по умолчанию, который возвращает указатель на объект.
Неверно. Подробности, например, здесь .
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39525667
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVDima TСортируешь и идешь последовательно, если текущий равен предыдущему - пропускаешь.

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

Но стоит отметить, что
- пересортировка больших массивов - это время и ресурсы.
- полностью теряется исходная последовательность чисел в массиве - во многих прикладных задачах (вычисление корреляций, криптоанализ) - это недопустимо

В чем большая разница?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39647098
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз хочу возвратится к теме сравнения хешсетов. Есть метод setequal(object) - достаточно ли его для автоматического сравнение двух хешсетов? Или надо наследование Hashset<T> если он не запечатан, и переопределение метода equal(), где надо проверять есть ли обьект хешсетом, имеет ли он одинаковое количество компонентов что и исходный, и есть ли все элементы проверяешего хешсета в исходном через foreach() и contain(...)? В таком случае можно достигнуть равности хешсетов.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39647103
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stutЕще раз хочу возвратится к теме сравнения хешсетов. Есть метод setequal(object) - достаточно ли его для автоматического сравнение двух хешсетов? Или надо наследование Hashset<T> если он не запечатан, и переопределение метода equal(), где надо проверять есть ли обьект хешсетом, имеет ли он одинаковое количество компонентов что и исходный, и есть ли все элементы проверяешего хешсета в исходном через foreach() и contain(...)? В таком случае можно достигнуть равности хешсетов.
Дурью вы маетесь. Enumerable.SequenceEqual(TSource) Method (IEnumerable(TSource), IEnumerable(TSource), IEqualityComparer(TSource)) (System.Linq)
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39647202
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написать все одним хотя и очень сложным и очень общим методом - наверное просто. Но я б даже не хотел применять IequalityComparer - задача скорее была на алгоритмы, на которую надо была потратить 20-30 мин., потому знать очень тонкие детали хешсетов или шарпа здесь ни к чему. Но я никогда не расширял стандартные колекции потому мне это в новинку, а это сделать наверное надо если переопределять метод еquаl. Я думаю одними масивами здесь трудно обойтись - если не создавать новый масив каждый раз при добавление нового элемента в список, который должен быть множеством.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39647256
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, интересный вопрос. Equals() - это проверка на равность обьектов хешсетов, а мне надо проверить равность множества обьектов созданных разными обьектами хешсетов. Setequals() проверяет на равность элементов но если элементы равные (doublе например) по значению но ссылка на их wrаppеrs разные? Или я например не знаю об этом методе, например пришел из джавы, или надо собственный метод - что применять статический extension method?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39647277
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stutНет, интересный вопрос. Equals() - это проверка на равность обьектов хешсетов, а мне надо проверить равность множества обьектов созданных разными обьектами хешсетов. Setequals() проверяет на равность элементов но если элементы равные (doublе например) по значению но ссылка на их wrаppеrs разные? Или я например не знаю об этом методе, например пришел из джавы, или надо собственный метод - что применять статический extension method?
Генерик-коллекции не делают боксинг для значимых типов.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39647281
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Генерик хешсеты не переопределяют equals() - setequal() допускают дубликаты и другие колекции - вот прочитал пару минут назад. Значит остается метод разширение или просто обычный метод класа для сравнение двух созданных хешсетов на основание элементов столбца масива. Потому мой предложеный выше способ сравнение хешсетов должен подойти или он в чем то неправильный?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39647717
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slant-shadow,
Код: c#
1.
var result = MyArray.Distinct();
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39647803
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stut,

хешсет это целое число, то есть при количество вариантов > int.Max вероятность совпадения хешей между 2 элементами 100% (формально). На самом деле, если ты очень визучий, можно получить в множестве на 100000 элементов 2 хешсета одинаковые, ведь сами объекты тоже не целые числа.
В Hashset<T> вычисляется не только кеш, для всех хешей создаются корзины, в 1 корзину для 1 хеша попадают все элементы с одинаковым хешем, если в корзине больше 1 элемента его поиск будет по методу Equals.
Примерно такая логика
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39649583
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем случае надо было hashset<double>. И что невозможно сравнить два хешсета посредством setequal(hashset<double>) или через кастомный метод что сперва сравнивает количество элементов в хешсетах, и если они равны проверяет наличие каждого элемента одного хешсета в другом хешсете - через contain() - если всегда возвращает truе - значит и элементы идентичны в неповторяющих последовательностях однаковой длины?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39649587
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stutВ моем случае надо было hashset<double>
Ужос.

Ты в курсе что double и == несовместимы?
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39649606
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, Ужос? Большой? А где у меню использование double и ==? Мне надо именно найти было одинаковые множества, а не hashset/set.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39649658
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39650170
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где я упоминал об double и "=="? Мне надо было найти одинаковые множества в столбцах я и предположил что это должны быть числа типа double - хотя в шарпе есть более узкий тип decimal.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39650329
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stutГде я упоминал об double и "=="?
тут
stutВ моем случае надо было hashset<double>
внутри hashset используется ==
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39650403
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TstutГде я упоминал об double и "=="?
тут
stutВ моем случае надо было hashset<double>
внутри hashset используется ==
на самом деле, нельзя так ультимативно говорить, что сравнивать double нельзя. Вполне можно. Double это просто набор байт, разделенных на мантиссу и экспоненту. Которых вполне можно сравнить. Сравнивать их нельзя если вы используйте какие то вычисления. Так как работа с такими типа ведет к погрешности.
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39650418
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TstutГде я упоминал об double и "=="?
тут
stutВ моем случае надо было hashset<double>
внутри hashset используется ==
Он используется не внутри hashset, а, как ни странно, внутри самого double - и в Equals, и в перегруженном опреаторе ==, и хэшсет вызывает эту операцию опосредованно через имплементацию IEqualityComaprer<T> (EqualityComparer<T>.Default, если в конструкторе хэшсета IEqualityComaprer<T> не задан явно).
...
Рейтинг: 0 / 0
Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
    #39654588
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да проверял я уже как неделю назад. Все работает с Hashset<double>.SetEqual(Hashset<double> object). И с цыфрами после точки, и однаковими числами в разном порядке такой метод возвращает truе. Хотя я при проверке использовал числа лиш с одной цыфрой после точки.
...
Рейтинг: 0 / 0
41 сообщений из 41, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Найти в массиве повторяющиеся элементы и записать только уникальные элементы в новый масси
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]