Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> каким образом в списке List найти повторения??? 
:(
    Опции темы
factura
Дата 3.6.2014, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.1.2014

Репутация: нет
Всего: нет



Метод Distinct не годиться ибо он удаляет не уникальные значения,LINQ тоже не пригоден так как было требование его не использовать
PM MAIL   Вверх
jonie
Дата 4.6.2014, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



Distinct ничего не удаляет, и вообще это часть LINQ расширений.
Ну создайте что-то вроде (не очень хороший код, конечно):
Код

 public static Dictionary<T, List<int>> GetRepeats<T>(List<T> list)
        {
            var rv = new Dictionary<T, List<int>>();
            for(int i=0;i<list.Count;++i)
            {
                var item = list[i];
                if (rv.ContainsKey(item))
                {
                    rv[item].Add(i);
                }
                else
                {
                    rv[item] = new List<int>();
                }
            }

            var rv1 =rv.Where(x => x.Value.Count > 0).ToDictionary(k => k.Key, v => v.Value);

            return rv1;
        }



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Miller_time
Дата 30.7.2014, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Вообщем тоже не много креатива не самый оптимальный вариант:
Код

using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> items = new List<string>();
            items.Add("Hello");
            items.Add("World");
            items.Add("Hello");
            List<string> originalItem = new List<string>();
            foreach (var x in items)
            {
                bool isFindvar = false;
                foreach (var y in originalItem)
                {
                    if (x == y)
                    {
                        Console.WriteLine("Что то тут не так {0}", x);
                        isFindvar = true;
                        break;
                    }
                }
                if (isFindvar == false)
                {
                    originalItem.Add(x);
                }
            }
            Console.WriteLine("Все");
            Console.ReadLine();
        }
    }
}




--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0650 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.