我很抱歉,如果這是一個明顯的答案,但我無法在StackOverflow或Google上找到與此行爲有關的任何內容。我是自學C#的,並且正在編寫一個涉及使用用戶名/密碼對的程序。在這種情況下,我使用.Exist()
來確定用戶名是否已經在我的用戶名數組中。Array.Exist()只識別數組的最後一個元素
static bool LookUpS(string targ, string[] arr)
{
if (Array.Exists(arr, e => e == targ))
{
return true;
}
else
{
return false;
}
}
的參數targ
來自用戶,和參數arr
寫入程序來指定應該搜索哪個數組(這是使我可以在不同的陣列使用LookUpS
)。我現在正在測試的數組來源於文本文檔。我已經測試過,以確認從.txt到數組的轉換工作正常。
現在到了實際問題。我用幾個值填充了文本文件:「木星」,「海王星」,「土星」,「火星」。如果我將前三個中的任何一個傳遞給LookUpS
,它將返回false
,儘管它們確實存在。然而,我不明白的部分是,如果我將「火星」(或任何最後一個值碰巧)傳遞給函數,它將返回true
。如果我要刪除「火星」值,LookUpS
會說「土星」是true
而不是其他。任何人都可以提供一些解釋嗎?如果這可以幫助找出問題,我可以張貼更完整的程序圖片。
您是否在'Exists'委託中放置了一個斷點來調試數組中的每個值,因爲它是迭代的? – xxbbcc
如何將.txt文件轉換爲數組?可能是'arr'中的字符串包含一個換行符,除了最後一個。 – Glorfindel
我會說分割字符串有問題。嘗試打印'string.Join(「|」,arr)'並查看'|'是否有空格。 – xanatos