簡體   English   中英

如何使用字典替換正在比較的 2 個字符串?

[英]How can I use a dictionary to replace 2 strings that are being compared?

string[] UserCodes = { "admin", "testcode" };
string[] UserWords = { "123", "testword" };

public void Button_Clicked(object sender, EventArgs e)
{
    for (int i = 0; i < UserCodes.Length; i++)
    {
        if (UserCode.Text.Equals(UserCodes[i])  && UserWord.Text.Equals(UserWords[i]))
        {
            Navigation.PushAsync(new HomePage());
            return;
        }
        else
        {
            DisplayAlert("Something Went Wrong", "Incorrect Password or Username", "Try Again");
        }
    }         
}

現在我正在使用 2 個單獨但連接的字符串,我將它們與用戶輸入進行比較,以確定他們是否輸入了正確的登錄憑據。

public void d(string[] args)
  
    {
        IDictionary<string, string> LogCred = new Dictionary<string, string>();
        LogCred.Add("admin", "123");
        LogCred.Add("testcode", "test");

    }

這是我試圖制作的字典。

我的問題是如何使用字典來完成相同的結果?

假設這是一個測試應用程序,暫時擱置安全性,您可以使用用戶名/密碼組合初始化字典。 我對Code vs Word有點困惑,但這是其中的要點:

 Dictionary<string, string> users = new Dictionary<string, string>
 {
   //['code']  = 'word'  
     ["admin"] = "123",
     ["testcode"] = "testword"
 };

然后您可以使用 LINQ 來查看是否有任何組合與用戶輸入匹配:

public static void Button_Clicked(object sender, EventArgs e)
{
    var user = users.FirstOrDefault(x => x.Key == UserCode.Text && x.Value == UserWord.Text);

    if(user != null)
    {
         //got a match
    }
    else 
    {
        //no matches
    }
}

請注意,比較期望大小寫也匹配,正如它所寫的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM