C#是否有一种快速的方法(可能是一些Linq函数)来确定一系列卡类型中的每一张卡是否共享相同的卡值?
我有一个类型为C#是否有一种快速的方法(可能是一些Linq函数)来确定一系列卡类型中的每一张卡是否共享相同的卡值?,c#,arrays,linq,C#,Arrays,Linq,我有一个类型为Card的数组Card[/cards,它有一个int属性CardValue: public class Card { public int CardValue { get; set; } // Other properties omitted. } 如何快速检查阵列中的所有卡是否具有相同的CardValue?您可以执行以下操作: var allTheSame=Cards.Select(card=>card.CardValue).Distinct().Count()
Card
的数组Card[/cards
,它有一个int属性CardValue
:
public class Card
{
public int CardValue { get; set; }
// Other properties omitted.
}
如何快速检查阵列中的所有卡是否具有相同的CardValue?您可以执行以下操作:
var allTheSame=Cards.Select(card=>card.CardValue).Distinct().Count()==1
处理数组的最快方法是通过for
并对其进行索引,因此:
public static bool SameCardValue(Card[] cards) {
var firstCardValue = cards[0].CardValue;
for (int j1 = 1; j1 < cards.Length; ++j1)
if (cards[j1].CardValue != firstCardValue)
return false;
return true;
}
公共静态bool SameCardValue(卡[]卡){
var firstCardValue=卡片[0]。CardValue;
对于(int j1=1;j1
我假设您的
卡[]
长度不会为零,不过您可以为这种情况添加一个测试。小心使用quick这个词。快速记录和快速执行是不同的事情。LINQ更像是第一个。相关:。您需要插入一个。选择(c=>c.CardValue)
以检查卡值是否相等。此外,是否有人为Linq提供了一个好且简单的TOURIAL推荐非现场资源的请求为。如果可以保证数组不为空,则可以执行int first=cards[0]。CardValue;bool allTheSame=cards.All(c=>c.CardValue==first)代码>