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