最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#集合之不變集合的用法

 更新時間:2022年04月12日 09:49:27   作者:Ruby_Lu  
這篇文章介紹了C#集合之不變集合的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

如果對象可以改變其狀態(tài),就很難在多個同時運行的任務中使用。這些集合必須同步。如果對象不能改變器狀態(tài),就很容易在多個線程中使用。
Microsoft提供了一個新的集合庫:Microsoft Immutable Collection。顧名思義,它包含不變的集合類————創(chuàng)建后不能改變的集合類。該類在System.Collection.Immutable中定義。

//使用靜態(tài)的Create方法創(chuàng)建該數(shù)組,Create方法被重載,可以傳遞任意數(shù)量的元素
          ImmutableArray<string> a1 = ImmutableArray.Create<string>();
          //Add 方法不會改變不變集合本身,而是返回一個新的不變集合
          ImmutableArray<string> a2 = a1.Add("Williams");
          //可以一次調(diào)用多個Add方法
          ImmutableArray<string> a3 = a2.Add("Ferrari").Add("Mercedes").Add("Red Bull Racing");
          foreach (var item in a3)
          {
            Console.WriteLine(item);
          }

在使用不變數(shù)組的每個階段,都沒有復制完整的集合。相反,不變類型使用了共享狀態(tài),僅在需要時復制集合。
但是,先填充集合,再將它變成不變的數(shù)組會更高效(使用ToImmutableList方法)。需要進行一些處理時,可以再變?yōu)榭勺兊募希ㄊ褂肨oBuilder方法)。使用不變集合的提供的構建器ImmutableList<Account>.Builder。

List<Account> accounts = new List<Account>() {
        new Account {
          Name = "Scrooge McDuck", 
          Amount = 667377678765m
        },
        new Account {
          Name = "Donald Duck",
          Amount = -200m
        },
       new Account {
         Name = "Ludwig von Drake",
         Amount = 20000m
        }};
      ImmutableList<Account> immutableAccounts = accounts.ToImmutableList();

      ImmutableList<Account>.Builder builder = immutableAccounts.ToBuilder();
      for (int i = 0; i < builder.Count; i++)
      {
        Account a = builder[i];
        if (a.Amount > 0)
        {
          builder.Remove(a);
        }
      }

      ImmutableList<Account> overdrawnAccounts = builder.ToImmutable();


      foreach (var item in overdrawnAccounts)
      {
        Console.WriteLine("{0} {1}", item.Name, item.Amount);
      }
      
      public class Account
      {
        public string Name { get; set; }
        public decimal Amount { get; set; }
      }

只讀集合(http://m.fzitv.net/article/244084.htm)提供了集合的只讀視圖。在不使用只讀視圖訪問集合的情況下,該集合仍可以修改。而永遠不能改變不變的集合。

到此這篇關于C#集合之不變集合的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

天镇县| 东辽县| 嘉定区| 安康市| 洪洞县| 大连市| 阿瓦提县| 太和县| 上林县| 桐梓县| 信宜市| 九寨沟县| 来凤县| 吐鲁番市| 定襄县| 聂拉木县| 盐亭县| 永昌县| 航空| 平果县| 双辽市| 竹溪县| 唐河县| 常熟市| 鄂托克旗| 怀来县| 望谟县| 怀安县| 阳谷县| 孟村| 明溪县| 宜都市| 郴州市| 龙胜| 灵璧县| 新建县| 宜兰市| 汝南县| 班戈县| 沙河市| 个旧市|