Выявить самый часто повторяющийся элемент списка

Mudcrab

Client
Регистрация
28.03.2020
Сообщения
19
Благодарностей
12
Баллы
3
Есть список, содержащий города. Нужно выявить самый часто повторяющийся.
Можно конечно нагородить костылей, перебирать каждую строку, считать и тд. Может есть какая-нибудь готовая функция на C# чтоб это элегнатно сделать за две строчки? Я в C# ничё не понимаю.
 

Ахилес

Client
Регистрация
11.11.2020
Сообщения
846
Благодарностей
344
Баллы
63
Проще у ИИ спросить, чем ждать пока кто то на форуме код сделает.

114397
 
  • Спасибо
Реакции: Mudcrab

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28
C#:
var zp_list = project.Lists["list"];
var wordCounts = new Dictionary<string, int>();

var itemsArray = zp_list.ToArray(); // Используем метод ToArray() для получения массива элементов списка

foreach (var item in itemsArray)
{
    var word = item.ToString();

    if (wordCounts.ContainsKey(word))
    {
        wordCounts[word]++;
    }
    else
    {
        wordCounts[word] = 1;
    }
}

var mostCommonWord = wordCounts.OrderByDescending(pair => pair.Value).First().Key;

project.Variables["parse"].Value = mostCommonWord;
 
  • Спасибо
Реакции: Mudcrab

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28
или так ещё. короче чатжыпити в помощь, он с зенку понимает

C#:
var zp_list = project.Lists["list"]; //имя вышего списка в проекте
var wordCounts = new Dictionary<string, int>();

var itemsArray = zp_list.ToArray();

foreach (var item in itemsArray)
{
    var word = item.ToString();

    if (wordCounts.ContainsKey(word))
    {
        wordCounts[word]++;
    }
    else
    {
        wordCounts[word] = 1;
    }
}

var mostCommonWord = wordCounts.OrderByDescending(pair => pair.Value).First().Key;
var countOfMostCommonWord = wordCounts[mostCommonWord];

//создать новые переменные "parse" и "count"
project.Variables["parse"].Value = mostCommonWord; //получаем самое частое слово
project.Variables["count"].Value = countOfMostCommonWord.ToString(); //получаем  сколько раз встречается
 
  • Спасибо
Реакции: Mudcrab

Mudcrab

Client
Регистрация
28.03.2020
Сообщения
19
Благодарностей
12
Баллы
3
чатжыпити в помощь, он с зенку понимает
Вы используете chatgpt версии 4? я в бесплатной 3.5 задаю, код в зенке не работает, и исправить жыпити не может, с теми же самыми ошибками генерирует код, Такое впечатление что жыпити не совсем понимает что код нужен для зенки, т.к. генерируемый код начинается с using system. Gpt генерирует функци, а вызова самой функции в генерации нет.
 
Последнее редактирование:

Ахилес

Client
Регистрация
11.11.2020
Сообщения
846
Благодарностей
344
Баллы
63
Вы используете chatgpt версии 4? я в бесплатной 3.5 задаю, код в зенке не работает, и исправить жыпити не может, с теми же самыми ошибками генерирует код, Такое впечатление что жыпити не совсем понимает что код нужен для зенки, т.к. генерируемый код начинается с using system. Gpt генерирует функци, а вызова самой функции в генерации нет.
даже бесплатный можно обучить так как тебе надо. поищи видосики как обучать и задавать роли ему.
я в бесплатном нормальный код получаю, а то что он для консоли делает , меня не парит. раскидал его функции в общий код и все. для этого достаточно немного знать структуру C# проектов и все.
 
  • Спасибо
Реакции: Mudcrab

dohrelion

Client
Регистрация
22.03.2018
Сообщения
129
Благодарностей
34
Баллы
28
с какого языка этот код. var parse = project.Variables["parse"].Value;

Ответ #1: Данный код написан на языке программирования C#.


project.Variables["parse"].Value; это для zennoposter?

Ответ #2: Да, вы правы. Фрагмент кода project.Variables["parse"].Value; используется в ZennoPoster, который представляет собой программу для автоматизации действий в интернете, и этот код используется для доступа к значению переменной с именем "parse".


если на входе есть var zp_list = project.Lists["Список 1"]; мне надо найти самое часто повторяющее слово в списке и вывести результат в var parse = project.Variables["parse"].Value;

Ответ #3: Для поиска самого часто повторяющегося слова в списке в ZennoPoster, вы можете использовать следующий код:
csharp
var zp_list = project.Lists["Список 1"];
var wordCounts = new Dictionary<string, int>();

foreach (var item in zp_list.Items)
{
var word = item.ToString();

if (wordCounts.ContainsKey(word))
{
wordCounts[word]++;
}
else
{
wordCounts[word] = 1;
}
}

var mostCommonWord = wordCounts.OrderByDescending(pair => pair.Value).First().Key;

project.Variables["parse"].Value = mostCommonWord;

Этот код создает словарь, в котором подсчитывается количество вхождений каждого слова в списке. Затем он находит слово с наибольшим количеством повторений и присваивает его значение переменной "parse".

PS
Далее вставляете в кубик (ваш код) и тестите, если не работает то отправляете ему ошибку из лога, он исправит
 
  • Спасибо
Реакции: Respect и Mudcrab

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