如何检查数组是否包含存储在变量中的值

时间:2018-09-30 20:42:44

标签: c# arrays .net

我尝试使用Google搜索来寻找答案,但无济于事。我一般都不熟悉编码,尤其是C#,我正在尝试通过练习来掌握游戏的原理。

因此,我想做的是检查数组是否包含/具有与先前声明的变量中存储的值相同的值。如果有,则代码将执行某些操作,如果没有,则代码将执行其他操作。完成我想做的最简单的方法是什么?

非常感谢您。

2 个答案:

答案 0 :(得分:0)

类似的东西(请注意,我正在通过电话进行通话)

var someVar =1;
var myArray = new [] {1, 2, 3};
bool doesItContain = myArray.Contains(someBar);

如果您在输入myArray后按了点,则包含将是建议之一。

您可以直接在if语句中使用它,而不用将结果盯着布尔变量。

答案 1 :(得分:0)

如果要查看数组中是否有值,请使用Contains函数。如果要检查数组是否相等,请使用StructuralComparisons.StructuralEqualityComparer。 (https://docs.microsoft.com/en-us/dotnet/api/system.collections.structuralcomparisons.structuralequalitycomparer?view=netframework-4.7.2

代码

static void Main(string[] args)
{
int compValue = 5;
int[] values0 = { 1, 2, 5, 7, 8 };

void ContainsValue(int[] array, int valueToTest)
{
    bool isContained = array.Contains(valueToTest);
    if (isContained)
        Console.WriteLine($"{valueToTest} is in array");
    else
        Console.WriteLine($"{valueToTest} is not in array");
}

void CompareArrays(int[] array, int[] arrayToTest)
{
    var comparer = StructuralComparisons.StructuralEqualityComparer ;
    var areEqual = comparer.Equals(array, arrayToTest);

    Console.WriteLine("-------------");
    if (areEqual)
    {
        Console.WriteLine("Arrays are equal");
    }
    else
    {
        Console.WriteLine("Arrays are not equal");
    }
}
ContainsValue(values0, compValue);
int[] compArray1 = { 1, 2, 5, 7, 8 };
CompareArrays(values0, compArray1);
int[] compArray2 = { 1, 2, 5, 15, 8 };
CompareArrays(values0, compArray2);
CompareArrays(compArray2, values0);
}

输出:

5 is in array
-------------
Arrays are equal
-------------
Arrays are not equal
-------------
Arrays are not equal