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;

            //var obj = array.Where(item => 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:[12,14,22,23,33,45,65,0]

1:[102]

4:[412]}

也就是说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;
        }

这次测试结果是(请用监视查看,打印不出来的):

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

1:[102,111,156,0]

4:[412]}

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

时间: 2024-10-12 16:01:51

Linq 查询结果 可能遵循 2 º,2¹,2 ²,......增长计算的相关文章

NHibernate系列文章二十四:NHibernate查询之Linq查询(附程序下载)

摘要 NHibernate从3.0开始支持Linq查询.写Linq to NHibernate查询就跟写.net linq代码一样,非常灵活,可以很容易实现复杂的查询.这篇文章使用Linq to NHibernate重写之前所有的查询. 本篇文章的代码可以到NHibernate查询下载 1.创建IQueryable对象,返回所有Customer对象信息 1 public IList<Customer> QueryAllLinq() 2 { 3 return Session.Query<C

编写高质量代码改善C#程序的157个建议——建议26:使用匿名类型存储LINQ查询结果

建议26:使用匿名类型存储LINQ查询结果 从.NET3.0开始,C#开始支持一个新特性:匿名类型.匿名类型有var.赋值运算符和一个非空初始值(或以new开头的初始化项)组成.匿名类型有如下基本特性: 即支持简单类型也指出复杂类型.简单类型必须是一个非空初始值,复杂类型则是一个以new开头的初始化项. 匿名类型的属性是只读的,没有属性设置器,它一旦被初始化就不可更改. 如果两个匿名类型的属性值相同,那么就认为这两个匿名类型相等. 匿名类型可以再循环中用作初始化器. 匿名类型支持智能感知. 匿名

DataTable/Array Linq查询

DataTable Linq查询 1.查询DataRow 1 IEnumerable<DataRow> q1 = from r in dt.AsEnumerable() 2 where r.Field<int>("ID") % 2 == 0 3 select r; 2.查询某个字段 1 var query2 = 2 from pl in dt.AsEnumerable( ) 3 select pl.Field<string>("Name&q

LINQ查询知识总结:案例分

案例:汽车表car,系列表brand,厂商表productor private MyCarDataContext  _Context = new MyCarDataContext(); (1)查询全部汽车信息 var list = _Context.Car; LINQ语法:var list = from p in _Context.Car select p; (2)简单筛选行:查询车系代号是 b002的所有车 关键点:"==" var list = _Context.Car.Where

C#语法之Linq查询基础二

上篇C#语法之Linq查询基础一基本把Linq介绍了一下,这篇主要是列举下它的几个常见用法. 在用之前先准备些数据,新建了两个类Student.Score,并通过静态方法提供数据. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LinqDemo { public class Student {

Linq学习之旅——LINQ查询表达式

1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. 概述 LINQ的全称是Language Integrated Query,中文译成“语言集成查询”.LINQ作为一种查询技术,首先要解决数据源的封装,大致使用了三大组件来实现这个封装,分别是LINQ to Object.LINQ to ADO.NET.LINQ to XML.它们和.NET语言的关系如下:

linq查询一个字段的总和

(from s in dc.StockInItem   //所要查询单表 join si in dc.StockIn           //联合的表 on s.StockInID equals si.StockInID     //两个表联合的相同条件 where (s.ColorsID == int.Parse(colorID) && s.SizesID == int.Parse(sizeID) && s.ProductID == int.Parse(ProtectID

Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下:   1.UI控件与布局     2.MVVM     3.数据绑定     4.await/async     5.Linq查询     6.WCF RIA Services     7.序列化     8.委托与事件 1.UI控件与布局 常用的主要是Grid.StackPanel.Border,其中最常用的的是Grid,是一

C#LINQ 查询【学习笔记】

[LINQ 查询] 2016-10-24 事例: 先定义两个类Master和KongFu,然后在这两个类中定义变量 1 class Master 2 { 3 publicintId{ get;set;} 4 publicstringName{ get;set;} 5 publicintAge{ get;set;} 6 publicstringKongfu{ get;set;} 7 publicstringMenPai{ get;set;} 8 publicintLevel{ get;set;}