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

王朝学院·作者佚名  2016-05-17
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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 ²,......增长计算

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航