Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 听说过ifloop;)吗@Quantic:是的,我犯了一个错误,打算添加东西.Value、那.Key等。我只是使用东西和那作为临时占位符,以快速获得我想要的结构。很抱歉造成混淆,我已经编辑了代码@Owain Williams:我希望在末尾添加另一个方法,一_C#_Loops_Dictionary_Tuples - Fatal编程技术网

C# 听说过ifloop;)吗@Quantic:是的,我犯了一个错误,打算添加东西.Value、那.Key等。我只是使用东西和那作为临时占位符,以快速获得我想要的结构。很抱歉造成混淆,我已经编辑了代码@Owain Williams:我希望在末尾添加另一个方法,一

C# 听说过ifloop;)吗@Quantic:是的,我犯了一个错误,打算添加东西.Value、那.Key等。我只是使用东西和那作为临时占位符,以快速获得我想要的结构。很抱歉造成混淆,我已经编辑了代码@Owain Williams:我希望在末尾添加另一个方法,一,c#,loops,dictionary,tuples,C#,Loops,Dictionary,Tuples,听说过ifloop;)吗@Quantic:是的,我犯了一个错误,打算添加东西.Value、那.Key等。我只是使用东西和那作为临时占位符,以快速获得我想要的结构。很抱歉造成混淆,我已经编辑了代码@Owain Williams:我希望在末尾添加另一个方法,一次只提取一个元组,这样我就不需要处理数组了……这么说,我可能不需要返回任何内容。您的代码无法编译,请修复。我假设您希望迭代地址簿和用户和管理器列表,而不是迭代每个的值和键,并且如果(thing.Value==that.Key),您希望执行,但我



听说过
if
loop;)吗@Quantic:是的,我犯了一个错误,打算添加东西.Value、那.Key等。我只是使用
东西
作为临时占位符,以快速获得我想要的结构。很抱歉造成混淆,我已经编辑了代码@Owain Williams:我希望在末尾添加另一个方法,一次只提取一个元组,这样我就不需要处理数组了……这么说,我可能不需要返回任何内容。您的代码无法编译,请修复。我假设您希望迭代
地址簿
用户和管理器列表
,而不是迭代每个的
,并且如果(thing.Value==that.Key),您希望执行
,但我不确定。此外,尝试使用比
thing
更好的变量名。您只需将通讯簿加入到UsersandManager列表中,然后在结果选择器中选择元组,或者返回一个只有一组值的
元组,我认为您需要返回一个
IEnumerable
,基本上是一个
元组数组。您可能还想看看Linq,它可以非常简洁地枚举您的数据并返回您想要的。嗯,我从来没有听说过
if
loop;)@Quantic:是的,我犯了一个错误,打算添加东西.Value、那.Key等。我只是使用
东西
作为临时占位符,以快速获得我想要的结构。很抱歉造成混淆,我已经编辑了代码@Owain Williams:我希望在末尾添加另一个方法,一次只提取一个元组,这样我就不需要处理数组了……这么说,我可能不需要返回任何东西。我不熟悉加入字典-使用这种方法,我会将这部分插入两个
foreach
循环中吗?这就是它的工作原理吗?在var结果中,将是您创建的元组列表,您不再需要foreaches了。我最喜欢这种方法,尽管我最终使用的是对象,而不是字典和元组。谢谢。谢谢。这应该非常有效。我不熟悉加入字典-使用这种方法,我会将这部分粘贴到两个
foreach
循环中吗?这就是它的工作原理吗?在var结果中,将是您创建的元组列表,您不再需要foreaches了。我最喜欢这种方法,尽管我最终使用的是对象,而不是字典和元组。谢谢。谢谢。它应该非常有效
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; 
    }
//Assuming that addressBook value (the users email) is the key for the usersAndManagersList

var results = addressBook.Join(usersAndManagersList, addr => addr.Value, user => user.Key, (a, u) => {
    var userName = a.Key;
    var userEmail = a.Value;
    var managerEmail = u.Value;
    return Tuple.Create(userName, userEmail, managerEmail);
}).ToList();
addressBook.Where(a => usersAndManagersList.ContainsKey(a.Value))
    .Select(a => Tuple.Create(a.Key, a.Value, usersAndManagersList[a.Value]))
   class Program
  public static IEnumerable<Tuple<string, string, string> > AllUserInformation(Dictionary<string, string> addressBook, Dictionary<string, string> usersAndManagersList)
  {
     foreach (var book in addressBook)
     {
        string managerEmail;
        if (usersAndManagersList.TryGetValue(book.Value, out managerEmail))
        {
           yield return Tuple.Create(book.Key, book.Value, managerEmail);
        }
        else
        {
           yield return Tuple.Create(book.Key, book.Value, string.Empty);
        }
     }
  }

  static void Main(string[] args)
  {
     Dictionary<string, string> addressBook = new Dictionary<string, string>();
     Dictionary<string, string> usersAndManagersList = new Dictionary<string, string>();
     addressBook.Add("Andy", "andy@firm.com");
     addressBook.Add("Mary", "mary@firm.com");
     usersAndManagersList.Add("andy@firm.com", "jane@firm.com");

     foreach (var allInfo in AllUserInformation(addressBook, usersAndManagersList))
     {
        Console.WriteLine("User: {0}, User's Email: {1}, Manager's Email: {2}", allInfo.Item1, allInfo.Item2, allInfo.Item3);
     }
  }