如果我有一個int數組,並且我想快速檢查某個int值是否在該數組中,是否有一種方法可以做到這一點?如何查找數值是否在Visual C#中的數組#
回答
如果數組進行排序,那麼這是最快的:
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
具有無序陣列的最佳性能。第二個選項使用謂詞委託,第三個選項需要創建一個枚舉器對象。
var myArray = new [] { 1, 2};
if myArray.Contains(1)
{
do something
}
您可能需要一個using System.Linq;
善良,
丹
使用例如這個,如果你想檢查你的數組包含INT 0:
if (your_int_array.Contains(0))
{
//Code
}
您可以使用IndexOf方法:
int[] array = new int[] { 1, 2, 3 };
bool isArrayContains17 = Array.IndexOf(array, 17) > -1;
試試這個功能:
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;
}
希望這有助於。
二進制搜索只適用於數組排序 – 2009-11-27 08:58:10
而你基於這個我投票我的評論? – 2009-11-27 09:00:30
我已+1。但我會補充說,排序是必需的,只有重複搜索纔是真正值得的。 – RichardOD 2009-11-27 09:05:51
的Enumerable.Contains()方法是你在.NET框架3.5的朋友...
提供您正在使用.NET 3.5 – RichardOD 2009-11-27 09:06:36
@RichardOD:你說得對。編輯答案... – EricSchaefer 2009-11-27 12:23:57
- 1. 如何查找C中的數組中是否有值?
- 2. 如何檢查值是否在數組數組中找到
- 3. 查找特定的列,並在Visual C#中獲取數組值#
- 4. 如何查找數組中是否有任何值合計n
- 5. 如何檢查數組中的所有值是否相等。 C++
- 6. 如何檢查數值是否在我的數組中?
- 7. 試圖找出如何檢查值是否在數組
- 8. 如何檢查數組的數組是否在內部數組中有值?
- 9. C#如何檢查數字是否是任何組值?
- 10. 檢查數值是否在數組中(C#)
- 11. Angularjs - 如何查看數值是否在數組中?
- 12. C++檢查項是否在數組中
- 13. 如何查找數組中的bool值?
- 14. 檢查數組中是否存在值
- 15. 檢查數組中是否存在值
- 16. 檢查值是否在數組中
- 17. 如何檢查數組A中的值是否在數組B中?
- 18. 如何查找數組的值是否是Perl中的哈希鍵?
- 19. 如何檢查值是否存在一個數組中的Jquery
- 20. 如何檢查嵌套數組中鍵的值是否存在?
- 21. 如何創建一個數組查看數值是否在數組中
- 22. 如何檢查是否在C#ListBox中存在一個數組
- 23. 如何查找對象是否存在於數組中javascript
- 24. jquery match:如何查找數組中是否存在關鍵字?
- 25. 如何檢查動態對象是否是c#中的數組?
- 26. 查找數組是否在二維數組中
- 27. 檢查數組是否在數組中
- 28. 查找數組的中值?
- 29. C#如何檢查數組是否包含2個整數之間的數值
- 30. 如何檢查是否數組是空數組中的Javascript
這個新的Contains方法沒有很好的公開。 – 2010-01-07 03:31:50