• C# 两种集合ToList()后的差异


    关于IEnumerable.ToList()和一个已经是List的集合ToList(),转换后原来是存在差异的

    情形一:IEnumerable.ToList()

            var lst1 = new int[] { 1, 2, 3, 4, 5, 6 }.Select(f => new A() { Id = f });
            var lst2 = lst1.ToList();
            var first1 = lst1.ElementAt(0);
            var first2 = lst2.ElementAt(0);
    
            Console.WriteLine($"ToList()之前第一个元素的HashCode:{first1.GetHashCode()}");
            Console.WriteLine($"ToList()之后第一个元素的HashCode:{first2.GetHashCode()}");
            Console.WriteLine($"----->>>结论是,在这种情况下ToList()后,对象被重新创建了");
    
            Console.WriteLine("---------------------------------------------------------");
            Console.WriteLine();
            Console.WriteLine();
    

    情形二:List.ToList()

            var lst3 = new int[] { 1, 2, 3, 4, 5, 6 }.Select(f => new A() { Id = f }).ToList();
            var lst4 = lst3.ToList();
            var first3 = lst3.ElementAt(0);
            var first4 = lst4.ElementAt(0);
    
            Console.WriteLine($"ToList()之前第一个元素的HashCode:{first3.GetHashCode()}");
            Console.WriteLine($"ToList()之后第一个元素的HashCode:{first4.GetHashCode()}");
            Console.WriteLine($"----->>>结论是,后一种情况下ToList()后,对象还是原来的对象");
    
            Console.WriteLine("---------------------------------------------------------");
            Console.WriteLine();
            Console.WriteLine();
    
            Console.Read();
    

    输出结果

  • 相关阅读:
    UVALive 3938 一道被我WA了的线段树
    批量删除Zen Cart 无图片商品
    zencart加大数据表字段长度
    CSS字体中英文名称对照表
    zencart产品批量表上传后SEO三要素状态以及特价时间修改
    Linux 文件系统
    VMware Tools 安装步骤
    IDEA安装阿里规约插件
    IDEA 中无法使用 EL 表达式
    Redis主从复制
  • 原文地址:https://www.cnblogs.com/anylian/p/14517566.html
Copyright © 2020-2023  润新知