我在这做错了什么会使index = -1
?当我将索引设置为> 0
时,无论输入的字母是什么,它都只返回times数组中的最后一个元素。
char[] lastNameLetterArr = { 'a', 'e', 'j', 'p', 't' };
string[] timeSlotArr = { TIME5, TIME1, TIME2, TIME3, TIME4 };
int index;
index = lastNameLetterArr.Length - 1;
while (index > 0 && lastNameLetterCh < lastNameLetterArr[index])
--index;
timeStr = timeSlotArr[index];
答案 0 :(得分:1)
让索引一直变为负数1的一种方法是将lastNameLetterCh
设置为大写字母。他们的UNICODE代码都低于a
的代码,因此只有在达到-1
时,您的循环才会停止。
要解决此问题,请在开始搜索之前将lastNameLetterCh
转换为小写:
lastNameLetterCh = char.ToLower(lastNameLetterCh);