title: System.Globalization.RegionInfo complete list of valid culture inputs
body: <p>I've got a list of ISO 3166 two-letter country codes acquired from an external source. For each, I create </p>
  
  <pre><code>     new System.Globalization.RegionInfo(countryCode) 
  </code></pre>
  
  <p>and occasionally one is invalid resulting in an ArgumentException "Culture name 'xx' is not supported." </p>
  
  <p>I want a function to determine if the country code is valid before I pass it into the constructor. This is my attempt:</p>
  
  <pre><code>    private bool IsCultureValid(string cultureName)
      {
          return CultureInfo.GetCultures(CultureTypes.AllCultures)
              .Any(c =&gt; c.Name.Equals(cultureName, StringComparison.InvariantCultureIgnoreCase));
      }
  </code></pre>
  
  <p>The function returns a false negative for many inputs (function returns false, but I can create a RegionInfo object with that input if I try). Some inputs:</p>
  
  <ul>
  <li>zw (Zimbabwe)</li>
  <li>au (Australia)</li>
  <li>mx (Mexico)</li>
  <li>ve (Bolivarian Republic of Venezuela)</li>
  <li>hn (Honduras)</li>
  <li>kw (Kuwait)</li>
  </ul>
  
  <p>What am I missing? Is there a better approach here? Thanks in advance!</p>