我讀過一些類似的帖子,但很多人只是詢問關於插入字典到元組中,反之亦然。我的問題是我有兩個單獨的字典,我想用它來填充一個新的元組。C# - 將字典鍵/值插入新元組
這兩個字典有一些共同的信息,這是用戶的電子郵件。 addressBook
字典包含用戶名和用戶的電子郵件。 usersAndManagersList
包含用戶的電子郵件和經理的電子郵件。我希望將兩者匹配起來,然後將所有信息放在一個單獨的元組中,以便輕鬆地傳遞此信息而不是兩個字典。
public static Tuple<string, string, string> allUserInformation(Dictionary<string, string> addressBook, Dictionary<string, string> usersAndManagersList)
{
Tuple<string, string, string> allUserInfo;
foreach (var thing in addressBook)
{
foreach (var that in usersAndManagersList)
{
if (thing.Value == that.Key)
{
var userName = thing.Key;
var userEmail = thing.Value;
var managerEmail = that.Value;
Console.WriteLine("User: {0}, User's Email: {1}, Manager's Email: {2}", userName, userEmail, managerEmail);
allUserInfo = Tuple.Create(userName, userEmail, managerEmail);
}
}
}
return allUserInfo;
}
在addressBook
和值在usersAndManagersList
的按鍵都是用戶的電子郵件。我試圖循環一切,如果一個值與另一個的值匹配,那麼用戶的電子郵件,用戶名和管理員的電子郵件將用於創建一個元組,然後在循環中重新開始。
主要的掙扎:我卡住了,如果我應該使用while
或if
循環。我很擔心的範圍,我應該在哪裏return
元組。我得到的一個錯誤是我返回一個空/未指定的元組,我明白爲什麼基於我返回的位置,但我不知道如何解決它。如何用正確的循環等創建這個元組?先謝謝你。
您的代碼無法編譯,請修正。我假設你想遍歷'addressBook'和'usersAndManagersList',而不是遍歷每個''Values'和'Keys',並且你想要做'if(thing.Value == that.Key)',但是我不確定。此外,嘗試使用比'thing'和'that'更好的變量名稱。 – Quantic
你應該把地址簿加入usersAndManagersList,然後在結果選擇器中選擇tupple。 –
你正在返回一個'Tuple',它只有一組值,I認爲你需要返回一個'IEnumerable >',基本上是一個'Tuple'數組。你可能也想看看Linq,這可以很簡單地枚舉你的數據並返回你想要的。 –