• System.Collections


     IEnumerable/IEnumerator 两者区别:

      IEnumerable 是一个可以被遍历的序列;

      IEnumerator 像是序列里的光标,多个IEnumerator可以遍历同一个IEnumerable

    创建一个集合

     var usersList = Enumerable.Range(0, 10).Select(i => new Users()
                {
                    Email = i + "qq.com",
                    Address = "安徽",
                    UserName = i + "jack"
                });
      //返回 10 0 1 2  20
    static IEnumerable<int> CreateSimpleIterator() { yield return 10; for (int i = 0; i < 3; i++) { yield return i; ; } yield return 20; } public static void Main(string[] args) { foreach (var item in CreateSimpleIterator()) { Console.WriteLine(item); }
    Console.WriteLine(
    "ok"); Console.ReadKey(); }

     和上面那段代码输出结果一样

       public static void Main(string[] args) {
                
    
                IEnumerable<int> enumerable = CreateSimpleIterator();
                using (IEnumerator<int> enumerator = enumerable.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        int value = enumerator.Current;
                        Console.WriteLine(value);
                    }
                }
    
                Console.WriteLine("ok");
                Console.ReadKey();
            }

    ImmutableList<T> Class

     解释:表示一个不可变列表,该列表是可通过索引访问的强类型对象列表。

    var immutableList = ImmutableList<string>.Empty; 
    
    var immutableList1 = immutableList.Add("str6");
    var immutableList2 = immutableList1.AddRange(new [] {"st1", "st2", "st3"});
    //result:2
    var str2Index = immutableList2.BinarySearch("st2");

    在immutableList  增加一个元素之后,原来列表没改变,而是新返回了一个增加后的列表。

     

  • 相关阅读:
    学习进度(2)
    模拟退火 [JSOI2004]平衡点 / 吊打XXX
    快读快写 O3 优化
    卡特兰数(Catalan)公式、证明、代码、典例
    树状数组 :单点修改,区间查询
    倍增 [模板]最近公共祖先LCA
    对测 【模拟】
    对测 【离线DP+二分】
    模拟退火 (骗分算法)
    基础数论入门
  • 原文地址:https://www.cnblogs.com/xieweikang/p/13896021.html
Copyright © 2020-2023  润新知