У меня есть семь слов в массиве:
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, который имеет то же значение?
Это для приложения покера, я продолжаю работать.
Вы можете использовать Linq, чтобы найти наибольшее количество одинаковых элементов и проверить, 5 или более:
int maxCount = s.GroupBy(x => x).Select(x => x.Count()).Max();
Отсортируйте массив, после чего вы убедитесь, что если имеется пять или более одинаковых значений, среднее значение будет одним из них. Посчитайте, сколько:
Array.Sort(words);
int cnt = 0;
Array.ForEach(words, s => { if (s == words[3]) cnt++; });
Вы можете сгруппировать похожие элементы и найти в любой группе пять или больше
from word in new [] { "a", "a", "a", "b", "a", "a", "b" }
group word by word into wordGroup
where wordGroup.Count() >= 5
select wordGroup.Key
Это можно сделать следующим образом:
List<string> values = new List<string> {"a", "a", "d","a", "a", "c", "a"};
int count = values.FindAll(id => id == "a").Count();