Where


IEnumerable.Where和IEnumerable.Select拓展方法

昨天有个同事在码一程序,处理一个list集合,检查是否有符合条件的项,但不想写繁琐的foreach检查(那样做看上去很2,不专业),于是我就顺手用linq拓展方法给写了。大致如下: if(null != xxx.Select(p => p .... ).FirstOrDefault()) { ... }; 结果发现运行的时候这个条件总是成立的,我蛋都碎了。后来我把.Select换成了.Where就好了。我仔细一看,原来.Select拓展方法遇到后面是条件判定的时候,返回的是bool类型。所以这个if语句自然就永远能走进去了。平时我用Select的时候往往后面跟着new的对象,所以一直没注意到这件事。 今天写了个小demo实验了一下: static void Main(string[] args) { var list = new List<string& …