1
無法將此二進制搜索結果轉換爲int。所有的代碼都能正常工作。我想獲取一個名稱並顯示json實例化的內容。我已經安排好了。謝謝c#二分查找方法「未處理的異常:System.IndexOutOfRangeException:」
「未處理的異常:System.IndexOutOfRangeException:索引超出了數組的範圍。」
static void SearchEntity(Entity[] entities)
{
Entities result = new Entities();
Console.WriteLine("Which name to find ");
string userInput = Console.ReadLine();
string[] title = new string[10000];
//-------------
Console.Write("Search Keyword : ");
string searchKeyword = Console.ReadLine();
if (userInput.ToLower() == "title")
{
title = entities.Select(m => m.Title).ToArray();
Array.Sort(title);
Sorting.Sort(entities, userInput);
var tmp = Array.BinarySearch<string>(title, userInput);
if (Convert.ToInt32(tmp) == -1)
{
Console.WriteLine("No data found!");
return;
}
result = entities[Convert.ToInt32(tmp)];
entitiesPrint(result);
}
什麼行nbr ??? –
查看BinarySearch的文檔以瞭解它是如何工作的。它返回一個'int'。 「int」可以是任何負數,而不僅是-1。 –
我必須問,爲什麼在這裏使用二進制搜索?它們對已經排序好的數組效果最好,但如果在執行搜索之前必須手動對數組進行排序,則會失去性能優勢。 – Abion47