2016年1月6日 星期三

Immutable集合-ImmutableQueue與ImmutableStack

Tool:Visual Studio 2015 Enterprise
OS:Windows 10
.NET Framework 4.6

在.NET Framework 4.5版新增一些不可變的集合物件,當集合中的內容不常變動,且想要以Thread Safe的方式操作集合時,便可以使用定義在 System.Collections.Immutable命名空間下的類別,例如ImmutableQueue(佇列)與ImmutableStack(堆疊)。

預設使用 Visual Studio建立的範本專案中,並不含這些類別的組件,因此你需要先利用Nuget工具下載它們。例如在Console專案中,使用Nuget下載System.Collections.Immutable套件:

 

image

以下是使用 ImmutableQueue範例:

using System;
using System.Linq;
using System.Collections.Immutable;
namespace ConsoleApplication2 {
  class Program {
    static void Main( string [ ] args ) {
      ImmutableQueue<int> q = ImmutableQueue<int>.Empty;
      q = q.Enqueue( 100 );
      q = q.Enqueue( 200 );
      q = q.Enqueue( 300 );

      while ( q.Count( ) > 0 ) {
        int item;
        q = q.Dequeue( out item );
        Console.WriteLine( item );
      }
    }
  }
}

以下是使用 ImmutableStack範例:

using System;
using System.Linq;
using System.Collections.Immutable;
namespace ConsoleApplication2 {
  class Program {
    static void Main( string [ ] args ) {
      ImmutableStack<int> stack = ImmutableStack<int>.Empty;
      stack = stack.Push( 100 );
      stack = stack.Push( 200 );
      stack = stack.Push( 300 );


      while ( stack.Count( ) > 0 ) {
        int item;
        stack = stack.Pop( out item );
        Console.WriteLine( item );

      }
    }
  }
}

沒有留言:

總瀏覽量