title: Make some List Union in C#
body: <p>I have 3 lists which every one of them has some instance of following class:</p>
  
  <pre><code>public class Menu
  {
     public string Address { get; set; }
     public string Name { get; set; }
     public List&lt;Menu&gt; Childs=new List&lt;Menu&gt;();
  }
  </code></pre>
  
  <p>I fill everyone of these list in code below:</p>
  
  <pre><code>public List&lt;Menu&gt; GetAvailableMenus(string[] roles)
  {
      var adminMenu = new List&lt;Menu&gt;();
      var terminalMenu = new List&lt;Menu&gt;();
      var gaurdMenu = new List&lt;Menu&gt;();
      if(roles.Contains("admin"))
      {
          GetAdminMenus(adminMenu);
      }
      if (roles.Contains("terminal"))
      {
          GetTerminalMenus(terminalMenu);
      }
      if (roles.Contains("gaurd"))
      {
          GetGaurdMenus(gaurdMenu);
      }                       
      return adminMenu.Union(gaurdMenu).Union(terminalMenu).ToList();
  }
  </code></pre>
  
  <p>my problem is Union action just concat these list and do nor merge them in order to remove redundant items.
  does anyone has any idea what should I do?</p>