Сравните 7 слов друг с другом, чтобы видеть, равны ли 5 из них. Как?

У меня есть семь слов в массиве:

string[7] = {x,x,x,x,x,x,x};

x сгенерирован от другого массива:

string[4]={a,b,c,d};

это означает, что каждый x может быть или a или b или c или d. Это случайным образом сгенерировано. это могло быть примером:

string[7]= {a,a,d,a,a,c,a}

мой вопрос состоит в том, как я могу проверить, существует ли пять x, который имеет то же значение?

Это для приложения покера, я продолжаю работать.

6
задан hafhadg3 3 March 2010 в 22:45
поделиться

4 ответа

Вы можете использовать Linq, чтобы найти наибольшее количество одинаковых элементов и проверить, 5 или более:

int maxCount = s.GroupBy(x => x).Select(x => x.Count()).Max();
10
ответ дан 8 December 2019 в 16:01
поделиться

Отсортируйте массив, после чего вы убедитесь, что если имеется пять или более одинаковых значений, среднее значение будет одним из них. Посчитайте, сколько:

Array.Sort(words);
int cnt = 0;
Array.ForEach(words, s => { if (s == words[3]) cnt++; });
1
ответ дан 8 December 2019 в 16:01
поделиться

Вы можете сгруппировать похожие элементы и найти в любой группе пять или больше

from word in new [] { "a", "a", "a", "b", "a", "a", "b" }
group word by word into wordGroup
where wordGroup.Count() >= 5
select wordGroup.Key
1
ответ дан 8 December 2019 в 16:01
поделиться

Это можно сделать следующим образом:

    List<string> values = new List<string> {"a", "a", "d","a", "a", "c", "a"};

    int count = values.FindAll(id => id == "a").Count();
3
ответ дан 8 December 2019 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: