select用法:

1、Dictionary<string, string>转json

Newtonsoft.Json.JsonConvert.SerializeObject(dicSubject.Select(l => new { label=l.Key,value=l.Value}))

2、Select可以修改数组、集合中的值

arrSub.Select(l => subjects.First(m => m.Name.Equals(l)).Id);

3.  可以对查询出来的结果做一些转换,下面的例子在数组中查找以"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);

4. 返回匿名类型,比如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);

5. 对于数组,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);

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

   int[] numbersA = { , , , , , ,  };
int[] numbersB = { , , , , }; var pairs =
from a in numbersA
from 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);

7.用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);

最新文章

  1. form data和request payload的区别
  2. java类读取properties文件
  3. 推荐几款制作网页滚动动画的 JavaScript 库
  4. 1.AngularJS初探
  5. wireshark_Couldn’t run /usr/sbin/dumpcap in child process: Permission denied
  6. jQuery1.11源码分析(8)-----jQuery调用Sizzle引擎的相关API
  7. Volley HTTP库系列教程(5)自定义一个Volley请求
  8. 【HDOJ】4358 Boring counting
  9. IE6完美解决fixed方法
  10. initrd.gz的解压和制作
  11. [C# 网络编程系列]专题九:实现类似QQ的即时通信程序
  12. 一些常用的js,jquerry 样例
  13. UIImageView 一些属性设置
  14. 【Android Developers Training】 31. 序言:共享简单数据
  15. php程序报错:PHP Core Warning/cannot open shared object file: No such file or directory
  16. Java虚拟机学习笔记(一)
  17. 微信小程序组件通信
  18. Android BrocastReceiver解析
  19. Android WebSocket开发
  20. 一篇 SpringData+JPA 总结

热门文章

  1. 模块-os.system的两个模块/random模块/datetime模块/写日志
  2. 伪元素改变date类型input框的默认样式实例页面
  3. 5. pytest的断言
  4. PHP脚本占用内存太多,解决方案
  5. Linux 查看文件夹命令
  6. springboot访问静态资源遇到的坑
  7. shim和polyfill,前端术语
  8. HLS-搭建Nginx流媒体服务器
  9. C++_类和动态内存分配1—动态内存和类
  10. 查找表,Two Sum,15. 3Sum,18. 4Sum,16 3Sum Closest,149 Max points on line