Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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# 如何在Visual C中查找数组中的值#_C#_Arrays_.net_Visual Studio_Search - Fatal编程技术网

C# 如何在Visual C中查找数组中的值#

C# 如何在Visual C中查找数组中的值#,c#,arrays,.net,visual-studio,search,C#,Arrays,.net,Visual Studio,Search,如果我有一个int数组,并且我想快速检查该数组中是否存在某个int值,是否有方法可以做到这一点?如果您使用的是C#3.0或更高版本 e、 g 您可能需要一个来使用System.Linq 善良 Dan如果要检查数组是否包含int 0,请使用此示例: if (your_int_array.Contains(0)) { //Code } 您可以使用以下方法: 尝试此功能: public static bool FindValueFromArray(object[] Values,object

如果我有一个int数组,并且我想快速检查该数组中是否存在某个int值,是否有方法可以做到这一点?

如果您使用的是C#3.0或更高版本

e、 g

您可能需要一个
来使用System.Linq

善良


Dan

如果要检查数组是否包含int 0,请使用此示例:

if (your_int_array.Contains(0))
{
    //Code
}
您可以使用以下方法:

尝试此功能:

public static bool FindValueFromArray(object[] Values,object valueToSearch){
    bool retVal = false;
    Array myArray = (Array)Values;
    int found = Array.BinarySearch(myArray, valueToSearch);
    if (found != -1){
        retVal = true;
    }
    return retVal;
}

希望这有帮助。

Enumerable.Contains()方法是您在.NET Framework 3.5中的朋友…

如果数组已排序,则这是最快的:

Array.BinarySearch(myArray, value) >= 0;
如果对数组进行了大量搜索并且很少修改,那么您可能会发现在修改后对数组进行排序是值得的(使用
array.sort
)并使用上述方法。否则,请使用您喜欢的选项:

Array.IndexOf(myArray, value) >= 0; //.Net 1

Array.Exists(array, delegate(int x) { return x == value; }); //.Net 2

myArray.Contains(value); //.Net 3

IndexOf
对于未排序的数组具有最佳性能。第二个选项使用谓词委托,第三个选项需要创建枚举器对象。

I've+1。但我要补充的是,排序是必需的,只有在重复搜索时才真正值得。如果您使用的是.NET3.5,这种新的Contains方法并没有得到很好的宣传。
public static bool FindValueFromArray(object[] Values,object valueToSearch){
    bool retVal = false;
    Array myArray = (Array)Values;
    int found = Array.BinarySearch(myArray, valueToSearch);
    if (found != -1){
        retVal = true;
    }
    return retVal;
}
Array.BinarySearch(myArray, value) >= 0;
Array.IndexOf(myArray, value) >= 0; //.Net 1

Array.Exists(array, delegate(int x) { return x == value; }); //.Net 2

myArray.Contains(value); //.Net 3