码迷,mamicode.com
首页 > 其他好文 > 详细

linq练习

时间:2014-06-14 16:56:51      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:des   style   class   blog   code   color   

1             //从字符串数组中将长度小于5的元素返回;
2             string[] values = { "tom", "stone", "mikejiekexun", "jim", "tigerwoods" };
3             var e1 = from item in values
4                      where item.Length < 5
5                      select item;
6             foreach (var s in e1)
7             {
8                 Console.WriteLine(s);
9             }
 1             //一个字符串数组中所有元素都是整数的表示形式
 2             //将他们中大于100的以int序列返回;
 3             string[] strs = { "1", "25", "250", "388", "99" };
 4             //var e1 = from str in strs
 5             //         where Convert.ToInt32(str)>100
 6             //         select Convert.ToInt32(str);
 7 
 8             //linq最终都编译成委托,当然可以调用.net函数
 9             var e1 = from str in strs
10                      let n = Convert.ToInt32(str)//声明临时变量,上述方法的改进
11                      where n > 100
12                      select n;
13             foreach (int i in e1)
14             {
15                 Console.WriteLine(i);
16             }
  1. 和sql语句不通,linq中select放到最后(方便类型推断)。
  2. in后是要进行处理的集合,from后的变量是values中每个元素的变量(联想foreach)。
  3. select后是查询结果。
  4. e1是select结果变量类型是范型的IEnumerable,注意是范型的IEnumerable
 1             //将一个姓名为Key、年龄为value的Dictionary中年龄大于20的
 2             //人的姓名用“,”分割打印出来。
 3 
 4             Dictionary<string, int> dict = new Dictionary<string, int>();
 5             dict["tom"] = 30;
 6             dict["jim"] = 13;
 7             dict["lily"] = 16;
 8             dict["you"] = 26;
 9 
10             var e1 = from name in dict.Keys
11                      where dict[name] > 20
12                      select name;
13             //因为e1是序列,而string.Join要求数组,所以用ToArray转换
14             Console.WriteLine(string.Join(",", e1.ToArray()));

 

 取出现次数最多的三个数:

1             int[] values = { 1, 2, 5, 2, 3, 5, 5, 3, 4, 3, 3 };
2             var result = from item in values
3                          group item by item into g //按照item进行排序,分组的数据用g表示
4                          orderby g.Count() descending //根据g中元素的个数进行降序排列
5                          select new { 数字 = g.Key, 次数 = g.Count() }; //生成匿名类,以g的key(也就是item)初始化类的"数字"属性,以g的元素个数初始化类的"次数"属性
6             foreach (var item in result.Take(3))//result.Take(3)是取出结果集前三个
7             {
8                 Console.WriteLine(item.数字 + "=" + item.次数);
9             }//输出3=4  5=3 2=2

 

linq练习,布布扣,bubuko.com

linq练习

标签:des   style   class   blog   code   color   

原文地址:http://www.cnblogs.com/skyl/p/3787944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!