Проверить повторы значения в списке. С#

Andron

Client
Регистрация
08.04.2015
Сообщения
222
Благодарностей
10
Баллы
18
Привет всем.
Задача такая: есть список значений нужно проверить все и отобрать те значения которые повторяются больше n раз. В зене не нашел такой функции. Думаю это можно реализовать через С#, что бы бралась первая строка и сравнивала с остальными значениями в списке. Но С# я не знаю. Кто подскажет как это сделать?

P.S. Вроде создавал эту тему раньше, но не нашёл её. Если повторяюсь, извините.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
var list = "1,2,3,4,4,5,4,5,3,4,4,4,5".Split(','); \\Project.Lists["list"];
var n = 3;
var ndups = list.GroupBy(x=>x).Where(g=>g.Count()>=n).Select(g=>g.First());
return string.Join("\r\n", ndups);
 

Andron

Client
Регистрация
08.04.2015
Сообщения
222
Благодарностей
10
Баллы
18
var list = "1,2,3,4,4,5,4,5,3,4,4,4,5".Split(','); \\Project.Lists["list"];
var n = 3;
var ndups = list.GroupBy(x=>x).Where(g=>g.Count()>=n).Select(g=>g.First());
return string.Join("\r\n", ndups);
Спасибо, правда я не могу понять что делает этот скрипт можно коротко разъяснить что бы я мог его применить. :ah:
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
запусти увидишь )
 

Andron

Client
Регистрация
08.04.2015
Сообщения
222
Благодарностей
10
Баллы
18
запусти увидишь )
Ну теоретически я понимаю чего ожидать. Но всё же хочется понять что в какой строке происходит.
Например в первой строке должен объявляться список с которым будет работать скрипт, но как-то странно эта строка выглядит, может это из-за того что я слабо шарю в С# а может там описано что-то другое. Вот я и хочу что бы понять что да как)
 

Andron

Client
Регистрация
08.04.2015
Сообщения
222
Благодарностей
10
Баллы
18
запусти увидишь )
Не много переделал код

var userId = project.Lists["Список 1"];
var n = project.Variables["min"].Value;
var p = project.Variables["maxValue"].Value;
var ndups = userId.GroupBy(x=>x).Where(g=>g.Count()>=n&&g.Count()<=p).Select(g=>g.First());
return string.Join("\r\n", ndups);

Когда переменные "n" и "p" указаны числа то всё работает, а когда поставил переменные зены, то начало выдавать ошибку. Даже когда, например, устанавливаю значение 3 в переменную "min" экшен выполняется с ошибкой "Оператор "<=" не может применяться к операндам "int" и "string" [Строка: 3; Столбец: 57]

Что я делаю не так?
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
217
Баллы
43
очевидно, что n и p должны быть int
 
  • Спасибо
Реакции: Andron

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Convert.ToInt32(project.Variables["min"].Value)
 
  • Спасибо
Реакции: Andron

Andron

Client
Регистрация
08.04.2015
Сообщения
222
Благодарностей
10
Баллы
18
Спасибо разобрался)
 

Ribakov

Client
Регистрация
16.12.2015
Сообщения
47
Благодарностей
4
Баллы
8
Здравствуйте!
Подскажите как подсчитать количество повторений определённой фразы (переменной) в списке?
Может кто поделится снипетом)

К примеру: надо подсчитать количество "моя фраза".
Естественно она будет в виде переменной
Код:
моя фраза
не  моя
не моя
снова не моя
моя фраза
моя фраза
 

S16er1um

Client
Регистрация
14.04.2016
Сообщения
826
Благодарностей
240
Баллы
43
Здравствуйте!
Подскажите как подсчитать количество повторений определённой фразы (переменной) в списке?
Может кто поделится снипетом)

К примеру: надо подсчитать количество "моя фраза".
Естественно она будет в виде переменной
Код:
моя фраза
не  моя
не моя
снова не моя
моя фраза
моя фраза
эта тема может тебе помочь http://zennolab.com/discussion/threads/c-poisk-po-spisku.24991/#post-192020
 
  • Спасибо
Реакции: Ribakov

juk88

Client
Регистрация
30.05.2018
Сообщения
90
Благодарностей
12
Баллы
8
Здравствуйте Подскажите где ошибка. При выполнении кода:


Color pixelColor = myBitmap.GetPixel(x, y);
string pixel = string.Format(@"{0}", pixelColor.R); // Возвращает цвет пикселя в формате RBG

Convert.ToInt32(project.Variables["pixel"].Value);

if (pixel > 440 && pixel < 556)
{
project.SendInfoToLog("", pixel.ToString(), true);
throw new Exception("Пиксель белый!");
}
else
{
int check = x + 1;

Выдаёт ошибку:

Компиляция кода Ошибка в действии "CS0019" "Оператор ">" не может применяться к операндам типа "string" и "int"". [Строка: 8; Cтолбец: 5]

Если if (pixel > 440 && pixel < 556) заменить на: if(pixel == "255") То всё работает как надо. Что не правильно в коде?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
string pixel это строка. строка не сравнивается с числами. надо конвертировать. int.parse(pixel)
 
  • Спасибо
Реакции: juk88

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