首页 > 学院 > 开发设计 > 正文

Linq 查询结果 可能遵循 2 º,2¹,2 ²,......增长计算

2019-11-17 02:56:43
字体:
来源:转载
供稿:网友

Linq 查询结果 可能遵循 2 º,2¹,2 ²,......增长计算

        static void Main(string[] args)        {            int[] array = new int[] { 102, 12, 23, 412, 22, 14, 45, 65, 33 };            var obj = from item in array                      orderby item ascending                      group item by item / 100;                          foreach (var item in obj)            {                Console.WriteLine(item.ToString());            }            return;        }  

无聊随便写Linq玩,突然发现这个问题,请看上面这段代码,理想状态下,obj结果应该是:

{0:[12,14,22,23,33,45,65]

1:[102]

4:[412]}

实际结果(请用监视查看,最后多出的0打印不出来的):

{0:[12,14,22,23,33,45,65,0] //看好 8位 = 23 ,不足补0

1:[102]         //20

4:[412]}        //20

也就是说0分组最后多个0,但是这个0不在原数组array中定义,它是怎么出现的?

后来修改数组int[] array = new int[] { 102, 12, 23, 412, 22,111,156, 14, 45, 65, 33,88 };

        public static void Main(string[] args)        {            int[] array = new int[] { 102, 12, 23, 412, 22,111,156, 14, 45, 65, 33,88 };            var obj = from item in array                      orderby item ascending                      group item by item / 100;                        foreach (var item in obj)            {                foreach (var t in item)                {                    Console.Write(t + "/t");                }                Console.WriteLine();            }                        return;        }    

这次测试结果是(请用监视查看,1分组末尾多个0打印不出来的):

{0:[12,14,22,23,33,45,65,88] //8位 = 23

1:[102,111,156,0]    // 4位 = 22,不足补0

4:[412]}        //20

于是,猜测Linq 查询结果 可能遵循 2 º,2¹,2 ²,......增长计算


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表