Как из списка взять число повторяющиеся три раза

maks_pays

Client
Регистрация
01.01.2017
Сообщения
178
Благодарностей
50
Баллы
28
Подскажите пожалуйста как из списка взять число повторяющиеся три раза
Пример:
Список 1:
3
24
56
67
67
89
54
54
54
22

Результат: 54
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Из списка в список. в предыдущем топике по этому вопросу есть ответ
Код:
var numbersList = project.Lists["spisokSchislami"];
var resultList = project.Lists["spisokSrezultatom"];
int con = 3;//sovpadeniya
Dictionary<string, int> bufer = new Dictionary<string, int>();
for(int i = 0; i < numbersList.Count; i++)
{
    string num = numbersList[i];
    if (bufer.ContainsKey(num))                             
    { 
        int count = bufer[num];
        count++;
        bufer[num] = count; 
        if(count == con)
        {
            resultList.Add(num);
        }
    }
    else
    {
        bufer.Add(num, 1); 
    }
                               
}
 
  • Спасибо
Реакции: Prosto и maks_pays

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 956
Благодарностей
781
Баллы
113
как вариант - объеденить список в переменную - х, потом из списка брать каждое число по порядку - ложить его в регекс по точному соответствию (с двух сторон граница) и забирать этим регексом из переменной х - все совпадения и подсчитывать сколько совпадений, как только 3 - так выход из цикла
 
  • Спасибо
Реакции: maks_pays

maks_pays

Client
Регистрация
01.01.2017
Сообщения
178
Благодарностей
50
Баллы
28
Из списка в список. в предыдущем топике по этому вопросу есть ответ
Код:
var numbersList = project.Lists["spisokSchislami"];
var resultList = project.Lists["spisokSrezultatom"];
int con = 3;//sovpadeniya
Dictionary<string, int> bufer = new Dictionary<string, int>();
for(int i = 0; i < numbersList.Count; i++)
{
    string num = numbersList[i];
    if (bufer.ContainsKey(num))                            
    {
        int count = bufer[num];
        count++;
        bufer[num] = count;
        if(count == con)
        {
            resultList.Add(num);
        }
    }
    else
    {
        bufer.Add(num, 1);
    }
                              
}
Большое спасибо!
 

maks_pays

Client
Регистрация
01.01.2017
Сообщения
178
Благодарностей
50
Баллы
28
как вариант - объеденить список в переменную - х, потом из списка брать каждое число по порядку - ложить его в регекс по точному соответствию (с двух сторон граница) и забирать этим регексом из переменной х - все совпадения и подсчитывать сколько совпадений, как только 3 - так выход из цикла
Тоже не плохой вариант Спасибо! Но SergSh прям идеальный вариант дал!)
 
  • Спасибо
Реакции: SergSh

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)