2016-12-18 49 views
0

我正在與以下內容鬥爭: 我有一個由webAPI填充的詞典。將選取器選定的詞典值放入另一個選取器中

Dictionary<string, int> recipients = new Dictionary<string, int>(); 

,我有一個選擇器

pickerRecipients = new Picker 
     { 
     }; 
     foreach (string recipientName in recipients.Keys) 
     { 
      pickerRecipients.Items.Add(recipientName); 
     } 

我要的是一個按鈕的按下,被放在第二詞典中選定值

Dictionary<string, int> multiRecipients = new Dictionary<string, int>(); 

要添加它我用

multiRecipients.Add(KEY, VALUE); 

但是到目前爲止據我所知,我只能訪問價值,而不是關鍵。我不知道該怎麼做。我認爲主要的問題是我從選擇器中選擇它,而不是直接從字典中選擇。

非常感謝任何人誰可以告訴我(:

PS我使用Xamarin

編輯: 這是我現在有,但我也改變了的int一個字符串,該字符串。一個int

   if (pickerRecipients.SelectedIndex != -1) 
     { 
      string currentlySelected = pickerRecipients.Items[pickerRecipients.SelectedIndex]; 

      var SelectedValue = recipients[currentlySelected]; 
      multiRecipients.Add(currentlySelected, SelectedValue); 
     } 
+0

你將不得不使用值 –

+0

@EhsanSajjad沒錯拿到鑰匙,我試過了。但我不知道我能如何得到它。 – JeroenM

+0

你有權訪問收件人的字典嗎? –

回答

1

,因爲你已經知道關鍵項目,只需使用[關鍵]語法來檢索值:

var SelectedValue = recipients[SelectedKey]; 
multiRecipients.Add(SelectedKey, SelectedValue); 
+0

謝謝! :)這個作品 – JeroenM

1

你可以使用LINQ來獲得使用從字典中值的鍵,它會像:

var key= recipients.FirstOrDefault(x => x.Value == selectedValue).Key; 
multiRecipients.Add(key,selectedValue); 
+0

謝謝,這個作品!但你和Jason的區別是什麼?據我所知,結果是一樣的。 – JeroenM

+0

我的答案使用鍵獲取值;他的答案獲得鑰匙使用價值 – Jason

+0

問題文字說,他知道價值,但沒有關鍵,沒有注意到,在代碼中它是相反的:) –

相關問題