Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#是否有一种快速的方法(可能是一些Linq函数)来确定一系列卡类型中的每一张卡是否共享相同的卡值?_C#_Arrays_Linq - Fatal编程技术网

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)