public static int ContactSearchFirst(List<Contact> contactList, string userInput)
{
int location = -1;
for (int index = 0; index < contactList.Count && location == -1; index++)
{
if (contactList[index].FirstName.ToUpper().Equals(userInput.ToUpper()))
{
location = index;
}
}
return location;
}
答案 0 :(得分:1)
如果你正在使用C#,那么整个循环是不必要的。您只需使用List<T>.FindIndex
方法:
public static int ContactSearchFirst(List<Contact> contactList,
string userInput)
{
return contactList
.FindIndex(c =>
c.FirstName.Equals(userInput,
StringComparison.InvariantCultureIgnoreCase));
}
您可能还想修剪输入,以便前导/尾随空格不会导致意外结果。
答案 1 :(得分:0)
如果以下情况属实,您只会得到一个新的位置值,所以也许它永远不会是真的:
if (contactList[index].FirstName.ToUpper().Equals(userInput.ToUpper()))
答案 2 :(得分:0)
调用函数时,参数传递可能不正确。
如果您使用的是Visual Studio,可以通过在代码中设置断点并检查contactList和userInput变量来轻松检查。