This topic has not yet been rated - Rate this topic

ResXResourceReader.GetEnumerator Method

Returns an enumerator for the current ResXResourceReader object.

Namespace:  System.Resources
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
public IDictionaryEnumerator GetEnumerator()

Return Value

Type: System.Collections.IDictionaryEnumerator
An enumerator for the current ResourceReader object.

Implements

IResourceReader.GetEnumerator()

The GetEnumerator method retrieves the name/value pairs in the XML resource (.resx) stream or string associated with the current ResXResourceReader object. However, if the UseResXDataNodes property is set to true before you call GetEnumerator, the resource items are retrieved as ResXDataNode objects. In this case, all resource nodes are returned regardless of type.

The following example uses the GetEnumerator method to obtain an IDictionaryEnumerator object that is used to enumerate the resources in a .resx file. The example includes a CreateResourceFile routine that creates the necessary resource file.

using System;
using System.Collections;
using System.Resources;

public class Example
{
   private const string resxFilename = @".\CountryHeaders.resx";

   public static void Main()
   {
      // Create a resource file to read.
      CreateResourceFile();

      // Enumerate the resources in the file.
      ResXResourceReader rr = new ResXResourceReader(resxFilename);
      IDictionaryEnumerator dict = rr.GetEnumerator();
      while (dict.MoveNext())
         Console.WriteLine("{0}: {1}", dict.Key, dict.Value);   
   }

   private static void CreateResourceFile()
   {
      ResXResourceWriter rw = new ResXResourceWriter(resxFilename);
      string[] resNames = {"Country", "Population", "Area", 
                           "Capital", "LCity" };
      string[] columnHeaders = { "Country Name", "Population (2010}", 
                                 "Area", "Capital", "Largest City" };
      string[] comments = { "The localized country name", "", 
                            "The area in square miles", "", 
                            "The largest city based on 2010 data" };
      rw.AddResource("Title", "Country Information");
      rw.AddResource("nColumns", resNames.Length);
      for (int ctr = 0; ctr < resNames.Length; ctr++) {
         ResXDataNode node = new ResXDataNode(resNames[ctr], columnHeaders[ctr]);
         node.Comment = comments[ctr];
         rw.AddResource(node);
      }
      rw.Generate();
      rw.Close();
   }
}
// The example displays the following output: 
//       Title: Country Information 
//       nColumns: 5 
//       Country: Country Name 
//       Population: Population (2010} 
//       Area: Area 
//       Capital: Capital 
//       LCity: Largest City

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
© 2013 Microsoft. All rights reserved.