当前文章: 首页 >> 编程开发 >> VS >> C#中通过index(for循环)来获取Dictionary键值
«   2020年12月   »
123456
78910111213
14151617181920
21222324252627
28293031
网站分类
访客信息
    标签列表
    最近发表
    友站访问排行

      C#中通过index(for循环)来获取Dictionary键值

      参考:  官方API Enumerable.ElementAt Method


      代码:

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      namespace App1Dictionary001
      {
          class Program
          {
              static void Main(string[] args)
              {
                  Dictionary<int,string> list = new Dictionary<int, string>();
                  //添加测试数据
                  list.Add(100, "一百");
                  list.Add(200, "两百");
                  list.Add(300, "三百");
                  //常用方式foreach
                  Console.WriteLine("foreach");
                  foreach (var obj in list )
                  {
                      Console.WriteLine("{0} = {1}", obj.Key, obj.Value);
                  }
                  Console.WriteLine("------------------------");
                  //for方式
                  Console.WriteLine("for");
                  for ( int i = 0; list.Count > i; i++  )
                  {
                      var obj = list.ElementAt(i);
                      Console.WriteLine("{0} = {1}", obj.Key, obj.Value);
                  }
                  Console.WriteLine("------------------------");
                  //如果在循环中需要删除增加的情况(会循环多次)
                  Console.WriteLine("for: add/delete");
                  for (int i = list.Count - 1; 0 <= i; i--)
                  {
                      var obj = list.ElementAt(i);
                      Console.WriteLine("{0} = {1}", obj.Key, obj.Value);
                      list.Remove(100);
                  }
                  //
                  string str = Console.ReadLine();
              }
          }
      }


      输出:

      foreach
      100 = 一百
      200 = 两百
      300 = 三百
      ------------------------
      for
      100 = 一百
      200 = 两百
      300 = 三百
      ------------------------
      for: add/delete
      300 = 三百
      300 = 三百
      200 = 两百


      发生了 System.InvalidOperationException
        HResult=0x80131509
        Message=集合已修改;可能无法执行枚举操作。
        Source=<无法计算异常源>
        StackTrace:
      <无法计算异常堆栈跟踪>


      在循环中修改集合一般使用上面第3种方式:

      //如果在循环中需要删除增加的情况(会循环多次)
       Console.WriteLine("for: add/delete");
      for (int i = list.Count - 1; 0 <= i; i--)
      {
          var obj = list.ElementAt(i);
          Console.WriteLine("{0} = {1}", obj.Key, obj.Value);
          list.Remove(100);
      }


      声明:本站原创文章,转载、复制、使用等请注明出处。
      标题C#中通过index(for循环)来获取Dictionary键值
      作者jues
      地址: http://blog.jues.org.cn/post/c-zhong-tong-guo-indexfor-xun-huan-lai-huo-qu-dictionary-jian-zhi.html

      发表评论:

      Powered By Z-BlogPHP 1.7.0 Powered By Z-BlogPHP © 2018 jues博客 Copyright Your WebSite.Some Rights Reserved.联系站长 Themes by jues