c# Dictionary 中Keys.ToArray<>方法的细节测试

 

        /// <summary>
        /// dic.Keys.ToArray<>方法生成数组的顺序和dic中的顺序相同
        /// </summary>
        public static void TestDicToArray() {
            Dictionary<DateTime, string> dic = new Dictionary<DateTime, string>();
            DateTime dt1 = DateTime.Parse("2013-9-29");
            int day = dt1.Day;
            DateTime dtTemp;
            for (int i = 1; i < day; i++)
            {
                dtTemp=dt1.AddDays(-i);
                dic.Add(dtTemp, dtTemp.ToShortDateString());
            }

            foreach (KeyValuePair<DateTime, string> kvp in dic)
            {
                Console.WriteLine(string.Format("{0} {1}", kvp.Key.ToShortDateString(),kvp.Value));
            }

            DateTime[] dtKeys=dic.Keys.ToArray<DateTime>();

            Console.WriteLine("=======================");
            for (int i = 0; i < dtKeys.Length; i++)
            {
                Console.WriteLine(string.Format("{0}==>{1}", i, dtKeys[i].ToShortDateString()));
            }

            Console.ReadLine();

        }
output:

2013/9/28 2013/9/28
2013/9/27 2013/9/27
2013/9/26 2013/9/26
2013/9/25 2013/9/25
2013/9/24 2013/9/24
2013/9/23 2013/9/23
2013/9/22 2013/9/22
2013/9/21 2013/9/21
2013/9/20 2013/9/20
2013/9/19 2013/9/19
2013/9/18 2013/9/18
2013/9/17 2013/9/17
2013/9/16 2013/9/16
2013/9/15 2013/9/15
2013/9/14 2013/9/14
2013/9/13 2013/9/13
2013/9/12 2013/9/12
2013/9/11 2013/9/11
2013/9/10 2013/9/10
2013/9/9 2013/9/9
2013/9/8 2013/9/8
2013/9/7 2013/9/7
2013/9/6 2013/9/6
2013/9/5 2013/9/5
2013/9/4 2013/9/4
2013/9/3 2013/9/3
2013/9/2 2013/9/2
2013/9/1 2013/9/1
=======================
0==>2013/9/28
1==>2013/9/27
2==>2013/9/26
3==>2013/9/25
4==>2013/9/24
5==>2013/9/23
6==>2013/9/22
7==>2013/9/21
8==>2013/9/20
9==>2013/9/19
10==>2013/9/18
11==>2013/9/17
12==>2013/9/16
13==>2013/9/15
14==>2013/9/14
15==>2013/9/13
16==>2013/9/12
17==>2013/9/11
18==>2013/9/10
19==>2013/9/9
20==>2013/9/8
21==>2013/9/7
22==>2013/9/6
23==>2013/9/5
24==>2013/9/4
25==>2013/9/3
26==>2013/9/2
27==>2013/9/1

 
时间: 2024-08-04 02:25:08

c# Dictionary 中Keys.ToArray<>方法的细节测试的相关文章

为什么我要用的Dictionary的Keys没有ToArray方法?

问题描述 我需要用Dictionary类,引用了usingSystem.Collections.Generic;用的.net4,为什么没有Keys.ToArray()方法,请教! 解决方案 解决方案二:usingSystem.Linq;解决方案三:Keys.Cast<Key的类型>().ToArray()解决方案四:因为它继承自:ICollection<KeyValuePair<TKey,TValue>>,IEnumerable<KeyValuePair<T

iOS 中正则表达式使用方法汇总

iOS 中正则表达式使用方法汇总 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 某种语言中的正则工具算是木桶,而这个工具处理的是正则表达式,算是水,那么水很多,无论是淡水还是咸水,或是雨水,至

toArray 方法

  返回一个由 VBArray 转换而来的标准 JScript 数组. safeArray.toArray( ) 必选项 safeArray 参数是一个 VBArray 对象. 说明 该转换将多维的 VBArray 翻译成一个一维的 JScript 数组.每个后续维被添加到前一维的结尾.例如,一个三维的且每一维有三个元素的 VBArray 将被转换为如下所示的 JScript 数组: 假定该 VBArray 包含:(1, 2, 3), (4, 5, 6), (7, 8, 9).在转换后,JScr

Python中的__new__()方法与实例化

__new__()是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在Python中 存在于类里面的构造方法__init__()负责将类的实例化,而在__init__()启动之前,__new__()决定是否 要使用该__init__()方法,因为__new__()可以调用其他类的构造方法或者直接返回别的对象来作为本类 的实例. 如果将类比喻为工厂,那么__init__()方法则是该工厂的生产工人,__init__()方法接受的初始化参 数则是生产所需原料,__init__()

详解jQuery插件开发中的extend方法_jquery

Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,dest是要整合的空间可以使{} 或者不写 src是一个JSON表达式表示的javascript对象.... 因此里面可以添加方法属性等等... 我么通过不同的应用可以将我们自己的方法整合到jQuery空间中....实现插件开发 在jQuery中定义  jQuery.extend = jQuery.fn.extend  所以这两个函数式相同的  一.Jquery的扩展方法原型是: extend(dest,s

关于Java Swing中的repaint()方法及setVisible()的问题

问题描述 关于Java Swing中的repaint()方法及setVisible()的问题 我写了一个JFrame, 加了一个JComponent,进行一些处理后使用removeAll()移除了JComponent中的所有组件,然后调用add(JPanel)添加了一个新的组件,最后调用repaint()方法显示这个JPanel 这时发现JPanel无法显示,但调整窗口大小后就能显示 因为调整窗口大小不是会自动调用repaint()方法吗?但是我自己调用了啊为什么不会显示嘞. 接下来, 我在re

详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析] good

目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口的具体应用 常用HandlerMethodArgumentResolver介绍 常用HandlerMethodReturnValueHandler介绍 本文开头现象解释以及解决方案 编写自定义的HandlerMet

集合的toArray方法产生的Object[]数组转换失败

最近遇见一个问题,即调用一个集合(只存放类A的对象)的toArray()方法变成Object[]数组,最后将它转换成A[]时抛出类型转换异常.不知道为什么不能转换成功.  最后了解到,集合的toArray方法有两个,一种就是Object[] toArray(),另一种就是T[] toArray(T[] a),前一种没有指定数组的类型为Object,后一种指定数组的类型为T.所以为了避免类型转换失败,在使用时尽量使用后一种,指明你所想要产生的数组类型.  详细看下他们的源代码,其实也很简单(以Ve

to rray-Collections的 toArray方法

问题描述 Collections的 toArray方法 Set 用 toArray 方法 转array[byte[]] ,始终不成功 , 不要回答我 遍历set 放到 array中 解决方案 由 toArray( )方法想到的toArray()方法使用说明 解决方案二: public static void main(String[] args) { Set set = new HashSet(); //定义Set集合 set.add("apple"); //向集合中添加对象 set.