共用方式為


ResourceSet.GetEnumerator 方法

定義

傳回可逐一查看 ResourceSetIDictionaryEnumerator

public:
 virtual System::Collections::IDictionaryEnumerator ^ GetEnumerator();
public virtual System.Collections.IDictionaryEnumerator GetEnumerator ();
[System.Runtime.InteropServices.ComVisible(false)]
public virtual System.Collections.IDictionaryEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
override this.GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
override this.GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
Public Overridable Function GetEnumerator () As IDictionaryEnumerator

傳回

這個 ResourceSetIDictionaryEnumerator

屬性

例外狀況

資源集已關閉或處置。

範例

下列範例示範如何為檔案 items.resources建立 ResourceSetrs。 接下來,會使用 GetEnumerator 方法來建立 rsIDictionaryEnumeratorIDictionaryEnumerator 逐一查看 rs,並將內容顯示至主控台。

using namespace System;
using namespace System::Resources;
using namespace System::Collections;
int main()
{
   
   // Create a ResourceSet for the file items.resources.
   ResourceSet^ rs = gcnew ResourceSet( "items.resources" );
   
   // Create an IDictionaryEnumerator* to read the data in the ResourceSet.
   IDictionaryEnumerator^ id = rs->GetEnumerator();
   
   // Iterate through the ResourceSet and display the contents to the console.
   while ( id->MoveNext() )
      Console::WriteLine( "\n [{0}] \t {1}", id->Key, id->Value );

   rs->Close();
}
using System;
using System.Resources;
using System.Collections;

class EnumerateResources 
{
    public static void Main() 
    {
        // Create a ResourceSet for the file items.resources.
        ResourceSet rs = new ResourceSet("items.resources"); 

        // Create an IDictionaryEnumerator to read the data in the ResourceSet.
        IDictionaryEnumerator id = rs.GetEnumerator(); 

        // Iterate through the ResourceSet and display the contents to the console. 
        while(id.MoveNext())
          Console.WriteLine("\n[{0}] \t{1}", id.Key, id.Value); 

        rs.Close();
    }
}
Imports System.Resources
Imports System.Collections

Class EnumerateResources
   
   Public Shared Sub Main()
      ' Create a ResourceSet for the file items.resources.
      Dim rs As New ResourceSet("items.resources")      
      
      ' Create an IDictionaryEnumerator to read the data in the ResourceSet.
      Dim id As IDictionaryEnumerator = rs.GetEnumerator()
      
      ' Iterate through the ResourceSet and display the contents to the console. 
      While id.MoveNext()
         Console.WriteLine(ControlChars.NewLine + "[{0}] " + ControlChars.Tab + "{1}", id.Key, id.Value)
      End While 

      rs.Close()

   End Sub

End Class

備註

列舉值只允許讀取集合中的數據。 列舉值無法用來修改基礎集合。

一開始,列舉值會放在集合中的第一個專案之前。 Reset 也會讓枚舉器回到這個位置。 在這個位置上,呼叫 Current 會擲回例外狀況。 因此,您必須先呼叫 MoveNext,才能將列舉值移至集合的第一個專案,然後再讀取 Current的值。

Current 會傳回相同的物件,直到呼叫 MoveNextReset 為止。 MoveNext 會將 Current 設定為下一個專案。

傳遞集合結尾之後,列舉值會位於集合中的最後一個項目之後,而呼叫 MoveNext 會傳回 false。 如果最後一次呼叫 MoveNext 傳回 false,則呼叫 Current 會擲回例外狀況。 若要再次將 Current 設定為集合的第一個專案,您可以呼叫 Reset,後面接著 MoveNext

只要集合維持不變,列舉值會維持有效狀態。 如果對集合進行變更,例如新增、修改或刪除專案,列舉值會無法復原地失效,且下一次呼叫 MoveNextReset 會擲回 InvalidOperationException。 如果集合在 MoveNextCurrent之間修改,Current 會傳回它設定為的專案,即使列舉值已經失效也一樣。

您可以使用 IDictionaryEnumerator.Entry 屬性來存取儲存在目前專案中的值。 使用 IDictionaryEnumerator.Key 屬性來存取目前專案的索引鍵。 使用 IDictionaryEnumerator.Value 屬性來存取目前專案的值。

列舉值沒有集合的獨佔存取權;因此,透過集合列舉本質上不是安全線程的程式。 即使集合同步處理,其他線程仍然可以修改集合,這會導致列舉值擲回例外狀況。 若要保證列舉期間的線程安全性,您可以在整個列舉期間鎖定集合,或攔截其他線程所做的變更所產生的例外狀況。

適用於