gpt4 book ai didi

C# 计算列表中的出现次数

转载 作者:行者123 更新时间:2023-12-02 05:04:14 26 4
gpt4 key购买 nike

我有一个 Card 类型,它有一个名为 Valueint 属性,其中 Ace = 14,Five = 5,等等。

如果我有卡片列表 (5),即。一只手。我想做的是计算 Value 等于另一张卡的数字卡,即找到 4 种、3 种、一对、两对等。我对 C#/编程还很陌生,但我相信这是 LINQ/Lambda 表达式的情况?有人可以帮帮我吗?

class Card : IComparable<Card>
{
private string name;
private int value;
private string suit;
public int Value
{
get
{
return value;
}
}
<.....>
//Constructor accepts string ex. "AH" and builds value 14, suit "Hearts"
public int CompareTo(Card that)
{
if (this.value > that.value) return -1;
if (this.value == that.value) return 0;
return 1;
}
}
List<Card> HandBuilder = new List<Card>();
HandBuilder.Add(...); //5 Cards
HandBuilder.Count ?? //Help

最佳答案

使用 GroupBy 非常简单。

var cards = HandBuilder.GroupBy(card => card.Value)
.OrderByDescending(group => group.Count());

要检查同一类中的四个,只需查看第一组是否有四个项目;检查三个同类项,看看第一组是否有三个项目。要检查两对,只需查看前两组是否各有两个项目。

关于C# 计算列表中的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16525900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com