我尝试使用Google搜索来寻找答案,但无济于事。我一般都不熟悉编码,尤其是C#,我正在尝试通过练习来掌握游戏的原理。
因此,我想做的是检查数组是否包含/具有与先前声明的变量中存储的值相同的值。如果有,则代码将执行某些操作,如果没有,则代码将执行其他操作。完成我想做的最简单的方法是什么?
非常感谢您。
答案 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