use*_*343 2 c# lambda list count
我有一个Card带有int属性的类型,Value其中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
Run Code Online (Sandbox Code Playgroud)
这非常简单GroupBy.
var cards = HandBuilder.GroupBy(card => card.Value)
.OrderByDescending(group => group.Count());
Run Code Online (Sandbox Code Playgroud)
要检查四种,只需查看第一组是否有四个项目; 检查三种类型,看第一组是否有三个项目.要检查两对,只需看看前两组是否有两个项目.
| 归档时间: |
|
| 查看次数: |
5938 次 |
| 最近记录: |