首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查成对和三重配件

检查成对和三重配件
EN

Stack Overflow用户
提问于 2013-05-05 17:05:53
回答 1查看 38关注 0票数 0

我有这个

代码语言:javascript
复制
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。

示例:

代码语言:javascript
复制
Karte-object-number,value
1,1
2,A
3,A
4,7
5,A
6,7
7,9
8,A

应返回true(AAA和77)

代码语言:javascript
复制
Karte-object-number,value
1,1
2,A
3,A
4,A
5,A
6,A
7,9
8,A

应返回true(AAA和AA)

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-05 17:32:03

首先,您必须按每个值分组,并计算出现的次数:

代码语言:javascript
复制
var groups = karten
          .GroupBy(k => k.value)
          .Select(group => new { Key = group.Key, Count = group.Count() })
          .ToList();

代码语言:javascript
复制
bool testing = (groups.Count == 1 && groups[0].Count >= 5) || (groups.Count >= 2 && groups[0].Count + groups[1].Count >= 5);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16382997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档