扩展方法where方法查询不到数据,不会抛异常,也不是返回的null

如题,“扩展方法where方法查询不到数据,不会抛异常,也不是返回的null”,示例代码如下:

Product类:

 public class Product
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        private double price;

        public double Price
        {
            get { return price; }
            set { price = value; }
        }

        public override string ToString()
        {
            return string.Format("{0}:{1}", Name, Price);
        }
    }

Main函数:

 static void Main(string[] args)
        {
            Console.WriteLine("验证where方法查询不到数据,不会抛异常,也不是返回的null。");
            Console.WriteLine();

            List<Product> list = new List<Product>
            {
                new Product{Name="三文鱼",Price=205.5},
                new Product{Name="鲫鱼",Price=15.5},
                new Product{Name="秋刀鱼",Price=10},
                new Product{Name="猪肉",Price=18.5},
                new Product{Name="牛肉",Price=70.5},
                new Product{Name="驴肉",Price=100}
            };
            Console.WriteLine("------------FindAll方法(单价大于30的商品)-----------");
            list.FindAll(p => p.Price > 30).ForEach(Console.WriteLine);
            Console.WriteLine();

            Console.WriteLine("------------Where方法(单价大于30的商品)-----------");
            foreach (var item in list.Where(p=>p.Price>30))
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();

            //验证where方法查询不到数据,不会抛异常,也不是返回的null
            Console.WriteLine("------------Where方法(单价大于30000的商品)---------");
            var num=list.Where(p => p.Price > 30000).Count();
            Console.WriteLine("有{0}个单价大于30000的商品。",num);
            Console.ReadKey();
        }

假如 list.Where(p => p.Price > 30000)  返回null,则list.Where(p => p.Price > 30000).Count()会抛异常。

事实上代码正确地运行了,即验证了:

运行截图如下:

时间: 2024-11-05 23:24:04

扩展方法where方法查询不到数据,不会抛异常,也不是返回的null的相关文章

SQL数据库查询一列数据返回一行

SQL:数据库合并列数据:遇到一个更新的问题 想要把查询到的数据某一列拼接成字符串形式返回用的是SQL数据库中的STUFF函数比如 查询到的表(u_College)如下Id Name Age Classify1 张一 18 一班2 张二 17 二班3 张三 19 三班->SQL语句SELECT distinct Classify=STUFF((SELECT distinct ','+ Classify FROM u_College FOR XML PATH('')),1,1,'') FROM u

扩展Exception,增加判断Exception是否为SQL引用约束异常方法!

在设计数据表时,如果将某些列设置为关联其它表的外键,那么如果对其进行增加.修改操作时,其关联表若没有相匹配的记录则报错,或者在对其关联表进行删除时,也会报错,这就是外键约束的作用,当然除了外键还有许多约束,在此暂不讨论,本篇文章主要讲的是,如何判断是否为SQL的引用约束异常,从而能够更好的将SQL复杂的报错转换为用户能够明白的友好提示. 扩展Exception,增加判断Exception是否为SQL引用约束异常方法(IsSqlReferenceConstraintException): publ

扩展 jq 对象方法

//扩展Jquery对象方法 $.fn.extend({ //proTree树结构 amTree: function (opts) { var Tree = function (element, opts) { this.element = element; //json数组 this.JSONArr = opts.arr; //没有下级时的图标 this.simIcon = opts.simIcon || "icon iconfont icon-qrcode"; //树展开时图标 t

Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)

Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法) https://blog.csdn.net/ksws0292756/article/details/79511170 本文主要介绍安装opencv C++接口和python接口的几种方法. 首先介绍C++接口的,然后介绍Python接口的 C++接口安装 采用源码编译的安装方式,基本也就是这种方法了,首先在官网下载你想安装的版本的opencv压缩包,下载连接如下: https://github.

CListCtrl 扩展风格设置方法---SetExtendedStyle和ModifyStyleEx

想把ListCtr设置为整行高亮显示错误的方法为: 1 clistctrl.ModifyStyleEx(0,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); 正确的方法为: 1 DWORD dwStyle = clistctrl.GetExtendedStyle(); 2 dwStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES; 3 clistctrl.SetExtendedStyle(dwStyle); 那么,Modi

获取set()和push()方法向值栈放的数据

------------------siwuxie095 获取 set() 方法向值栈放的数据 1.具体步骤 (1)在 Action 中使用 set() 方法向值栈放数据 (2)在 JSP 页面中从值栈获取数据 2.具体实现 (1)编写 Action @Override public String execute() throws Exception { // (1) 获取值栈对象 ActionContext context=ActionContext.getContext(); ValueSt

PHP打开PDO_MySQL扩展的配置方法

PHP中的PDO其实是一个很好用的扩展,在一些PHPCMS系统中,开发者大多都有用到,那么如何开启PDO和PDO_MySQL扩展呢?方法同样很简单: 打开php.ini配置文件,找到extension=php_pdo.dll 和 extension=php_pdo_mysql.dll ,去掉前面“;”的注释,修改后的两行配置内容如下: extension=php_pdo.dll extension=php_pdo_mysql.dll 最后,重启apache或iis,搞一个测试页,里面就phpin

扩展jQuery的方法统一处理AJAX调用过程中产生的异常错误信息

由于项目中大量的实用了.post方法,而该方法默认不对请求的异常进行处理,后期又要处理该问题.前期的解决方案是将使用.post请求都改造为$.ajax请求,但由于两个方法的实现(需要的参数)等相差很大,修改起来很麻烦! 期间尝试使用定义"AJAX 请求发生错误时执行函数($(document).ajaxError())" 的方式来解决问题,但影响范围太大,长轮询发生的错误也被捕获,导致页面一打开就弹出系统异常的对话框. 所以这里采用扩展jQuery的方法的技术来解决问题: /* 扩展j

谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比較

谈谈CListCtrl 扩展风格设置方法 --------------------------------------SetExtendedStyle和ModifyStyleEx 比較 对于刚開始学习的人来说,当他须要设定listctrl的扩展风格时,经常想到用ModifyStyleEx 来设定,代码例如以下: ModifyStyleEx(0,LVS_EX_GRIDLINES) 这是不对的,正确的设定应该是: SetExtendedStyle(LVS_EX_GRIDLINES) 那么,Modif