我有这个
public class Karte
{
public string value = "";
//
}
public class mainclass()
{
bool whatever()
{
List<Karte> Karten = new List<Karte>();
//Add Objects of Karte to Karten with different entries for value
if (testing)
return true;
else
return false;
}
}
在测试中,如果有3次相同的字符串和2次另一个字符串,我希望它返回true。
示例:
Karte-object-number,value
1,1
2,A
3,A
4,7
5,A
6,7
7,9
8,A
应该返回true(AAA和77)
Karte-object-number,value
1,1
2,A
3,A
4,A
5,A
6,A
7,9
8,A
应该返回true(AAA和AA)
Karte-object-number,value
1,1
2,A
3,A
4,7
5,M
6,7
7,9
8,F
应该返回false。 (AA和77,两对,但没有AAA或777)
答案 0 :(得分:2)
首先,您必须按每个值进行分组并计算出现次数:
var groups = karten
.GroupBy(k => k.value)
.Select(group => new { Key = group.Key, Count = group.Count() })
.ToList();
现在您可以应用您的测试逻辑:
bool testing = (groups.Count == 1 && groups[0].Count >= 5) || (groups.Count >= 2 && groups[0].Count + groups[1].Count >= 5);