C# List中写出类似SQL的语句

从一个关系表中挑出一个我们需要的元素列表采用SQL语句是再容易不过的了,其实C#的List中也可以采用类似的方法,虽然List中集成了Select(), Where()等语句,不过如果你的判断规则较为复杂,或者想要看起来一目了然,以下的方法也是可行的:

首先假设你有一个类

 代码如下 复制代码

public class People
{
    public string Name { get; set; }
    public int Age { get; set; }
}并且有一些初始化语句List<People> PeopleList = new List<People>();
PeopleList.Add(new People() { Name = "Haocheng Wu", Age = 24 });
PeopleList.Add(new People() { Name = "Haocheng Wu", Age = 25 });
PeopleList.Add(new People() { Name = "James Wu", Age = 23 });你就可以采用下面类似于SQL语句的方法进行select

List<string> SubPeopleNameList1 = (from people in PeopleList
                              where people.Name == "Haocheng Wu" && people.Age == 24
                              select people.Name).ToList<string>();

当然你也可以用一行代替
 

 代码如下 复制代码
List<string> SubPeopleNameList2 = PeopleList.Where(people => people.Name == "Haocheng Wu" && people.Age == 24).Select(people => people.Name).ToList();

不过显然第一种方法更加一目了然,尤其是当判断条件相当复杂的时候就更加有用了

时间: 2024-09-20 17:54:54

C# List中写出类似SQL的语句的相关文章

怎么写出一个sql语句来表示销售的配件的数量

问题描述 怎么写出一个sql语句来表示销售的配件的数量 String sql = "select '配件A' label,12 value " + "union all " + "select '配件B' label,10 value "; 来修改这个sql来表示表中的内容 解决方案 啥玩意,你这不是已经有这些数据了吗,还要改什么

如何用Java写出类似QQ好友列表那样的效果,求大神指教最好有代码

问题描述 如何用Java写出类似QQ好友列表那样的效果,求大神指教最好有代码 请问如何用Java写出类似QQ好友列表那样的效果,求大神指教最好有代码 解决方案 http://etwo.iteye.com/blog/1460375

优化SQL查询:如何写出高性能SQL语句

1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择"索引查找"方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 "全表扫描"方式. 可见,执行计划并不是固定的,它是"个性化的".产生一个正确的"执行计划"有两点很重要:

写出下列sql谢谢,超难sql,冰天雪地,光膀着跪求高手

问题描述 表A(id,name,regedate)表B(id,groupid)表C(id,name)求:1求出A表中每个月的注册用户,regedate格式是yyyy/mm/dd2求出A表中所有姓名相同的用户3A表中有相同名字的用户,把相同的选出来放入C表中4A表中姓名相同的id,保留注册最大时间的用户写出sql,谢谢2我只写出了第二个看对不对,同时其它的怎么写.selectnamefromAwherenamein(selectnamefromAwherecount(name)>1);同时有人把第

写出高性能SQL语句的35条方法分析_数据库其它

(1)整合简单,无关联的数据库访问: 如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系) (2)删除重复记录: 最高效的删除重复记录方法 ( 因为使用了ROWID)例子: DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO); (3)用TRUNCATE替代DELETE: 当删除表中的记录时,在通常情况下, 回滚段(rollback

老师让我用c#写一个类似sql格式化的工具,想问下原理是什么,如果有源码更好。

问题描述 如题 解决方案 解决方案二:没人吗?好急啊!!!!!!解决方案三:....说得也太含糊了点.....解决方案四:就是类似p/sql的那种格式化功能解决方案五:把关键字都大写,换色什么的?感觉是个麻烦的东西呢..要做的大概就是识别,更正2块吧..简单地写一写的话识别用contains,更正用replace就行了..不知道你具体要做到什么程度了..解决方案六:引用4楼tinydyw的回复: 把关键字都大写,换色什么的?感觉是个麻烦的东西呢..要做的大概就是识别,更正2块吧..简单地写一写的

写出优美SQL语句的捷径

从事企业系统开发很多年了,在系统的工作流分析中,少不了要分析SQL语句,当系统积累到一定规模后,所涉及的数据库表会以几何数增长,因此会经常碰到很长的SQL语句,涉及到的表会达到几十张之多,当你拿到这样一段SQL时,需要分析各个表之间的关系,头就有点大!我Google了一下,没有找到对SQL语句进行断行及缩进的工具,但是工作中又经常碰到这种SQL,手动来断行及缩进的话,又是一种机械重复的工作,因此"懒"劲上来了,自己周末开发了一个简单的辅助工具,同时分享给大家,我已上传程序提供下载. 我

如何写出无法维护的代码

这篇文章的原文在这里(http://mindprod.com/jgloss/unmain.html),我看完后我想说 什么叫"创造力",创造力就是就算是要干一件烂事都能干得那么漂亮那么有创意的能力. 什么叫"抓狂",抓狂就是以一种沉着老练的不屈不挠的一本正经的精神一点一点把你推向崩溃的边缘. 我把文章节选了一些,也并没有完全翻译,简译一下,也加入了一些自己的调侃.对于有下面这些编程习惯的朋友,请大家对号入座.另外,维护程序的朋友们,你们死定了!! If builde

国际扫盲日,你还能手写出多少汉字?

多少受访者写不出这些字? 测试     记者选取了10个常见的汉字--贰.茬.耽.蒜.兜.彪.蟹.戳.曦.噱,对30名受访者进行现场听写测验,这些受访者的年龄从11岁到65岁,学历从小学到研究生,身份包括学生.保安.店主.白领.退休工人以及作家等     结果     "噱头"的"噱","戳穿"的"戳","裤兜"的"兜","彪悍"的"彪",甚至&q