资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Linq如何使用Select

这篇文章给大家分享的是有关Linq如何使用Select的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

珲春网站建设公司成都创新互联,珲春网站设计制作,有大型网站制作公司丰富经验。已为珲春上千家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的珲春做网站的公司定做!

首先让大家了解下Linq To Sql查询数据库,然后全面介绍Linq使用Select。

下面通过一些例子来说明怎样Linq使用Select,参考自:LINQ Samples

1.  可以对查询出来的结果做一些转换,下面的例子在数组中查找以"B"开头的名字,然后全部转成小写输出:

string[] names = { "Jack", "Bob", "Bill", "Catty", "Willam" };  var rs = from n in names  where n.StartsWith("B")  select n.ToLower();  foreach (var r in rs)  Console.WriteLine(r);

2. 返回匿名类型,比如Linq To Sql查询数据库的时候只返回需要的信息,下面的例子是在Northwind数据库中查询Customer表,返回所有名字以"B"开头的客户的ID和名称:

NorthwindDataContext dc = new NorthwindDataContext();  var cs = from c in dc.Customers  where c.ContactName.StartsWith("B")  select new  {  CustomerID = c.CustomerID,  CustomerName = c.ContactTitle + " " + c.ContactName  };  foreach (var c in cs)  Console.WriteLine(c);

3. 对于数组,select可以对数组元素以及索引进行操作:

string[] names = { "Jack", "Bob", "Bill", "Catty", "Willam" };  var rs = names.Select((name, index) => new { Name = name, Index = index });  foreach (var r in rs)  Console.WriteLine(r);

4. 组合查询,可以对多个数据源进行组合条件查询(相当于Linq使用SelectMany函数),下面的例子其实就相对于一个双重循环遍历:

int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };  int[] numbersB = { 1, 3, 5, 7, 8 };   var pairs =  from a in numbersA,  b in numbersB  where a < b select new {a, b};   Console.WriteLine("Pairs where a < b:");  foreach (var pair in pairs)  Console.WriteLine("{0} is less than {1}", pair.a, pair.b);

而用Linq To Sql的话,相当于进行一次子查询:

NorthwindDataContext dc = new NorthwindDataContext();  var rs = from c in dc.Customers  from o in c.Orders  where o.ShipCity.StartsWith("B")  select new { CustomerName = c.ContactName, OrderID = o.OrderID };   foreach (var r in rs)  Console.WriteLine(r);

感谢各位的阅读!关于“Linq如何使用Select”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网站题目:Linq如何使用Select
路径分享:http://cdkjz.cn/article/jojocj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220