Linq学习__03__数据源是IEnumerable<T> 变量,Concat,匿名类,数组下标,返回字符串,group by,orderby
2013-12-22 13:43
471 查看
想运行本程序,请先做好准备工作,请参考:Linq学习__00__准备工作
(1)在HomeController创建新的方法,起名为Index1,其如代码1.1
代码1.1
2)添加视图Index1.cshtml,代码如代码1.2
代码1.2
(1)在HomeController创建新的方法,起名为Index1,其如代码1.1
代码1.1
#region 数据源是IEnumerable<T> 变量 /// <summary> /// 数据源是IEnumerable<T> 变量 /// 访问地址 Home/Index1 /// Concat()方法,返回匿名类,返回正常普通类,group by /// </summary> /// <returns></returns> public ActionResult Index1() { // 创建学生类 List<Student> students = new List<Student>() { new Student {First="二代", Last="富", ID=111, Street="123 Main Street", City="大连", Scores= new List<int> {97, 92, 81, 60}}, new Student {First="二麻子", Last="王", ID=112, Street="124 Main Street", City="深圳", Scores= new List<int> {75, 84, 91, 39}}, new Student {First="吊丝", Last="项", ID=113, Street="125 Main Street", City="上海", Scores= new List<int> {88, 94, 65, 91}}, }; // 创建教师类 List<Teacher> teachers = new List<Teacher>() { new Teacher {First="柜", Last="钱", ID=945, City = "大连"}, new Teacher {First="斌", Last="孙", ID=956, City = "深圳"}, new Teacher {First="廉洁", Last="李", ID=972, City = "北京"} }; // 用Concat连接两个子查询,查找城市在“大连”的学生和教师 var peopleInSeattle = (from student in students where student.City == "大连" select student.First) .Concat(from teacher in teachers where teacher.City == "大连" select teacher.First); ViewBag.Concat = peopleInSeattle; //用匿名类获取多个属性的元素,此时接收的变量是任意的 var anonymous = from student in students select new { First_rand = student.First,//变量是任意的 Last_ha_ha = student.Last//变量是任意的 }; ViewBag.anonymous = anonymous; //用普通正常类获取多个属性的元素,此时接收的变量必须是声明的Student类的属性 var hasNameClass = (from student in students select new Student { First = student.First,//First必须是Student类的属性 Last = student.Last//Last必须是Student类的属性 }).ToArray(); ViewBag.hasNameClass = hasNameClass; //使用数组下标,检索出第一科成绩大于80分的学生 var studentQuery =from student in students where student.Scores[0] > 80 select student; ViewBag.studentQuery = studentQuery; //使用对应参数返回字符串 var studentQuery1 = from student in students select string.Format("我是{0}{1}", student.Last, student.First); ViewBag.studentQuery1 = studentQuery1; //使用group by var studentQuery2 =from student in students group student by student.Last[0];//注意,linq可以用group语句结尾,再有就是用select结尾,没有第三个了。 ViewBag.studentQuery2 = studentQuery2; //分组后按字母顺序orderby var studentQuery3 = from student in students group student by student.Last[0] into studentGroup orderby studentGroup.Key select studentGroup; ViewBag.studentQuery3 = studentQuery3; return View();//返回View视图 } #endregion 数据源是XMLIEnumerable<T> 变量
2)添加视图Index1.cshtml,代码如代码1.2
代码1.2
@{ ViewBag.Title = "Index1"; Layout = "~/Views/Shared/_Layout.cshtml"; } @{ <div style="background-color: Yellow;"> 用Concat连接两个子查询,查找城市在“大连”的学生和教师</div> foreach (var i in ViewBag.Concat) { <div>@i </div> } <br /> <div style="background-color: Yellow;"> 用匿名类获取多个属性的元素,此时接收的变量是任意的</div> foreach (var j in ViewBag.anonymous) { <div>@j </div> //感兴趣的同学可以放开下面注释掉的语句执行以下,看会否成功 @*<div>First_rand =@j.First_rand + , Last_ha_ha =@j.Last_ha_ha</div>*@ //通过试验可知匿名类的属性是不能被调用的 } <br /> <div style="background-color: Yellow;"> 用普通正常类获取多个属性的元素,此时接收的变量必须是声明的Student类的属性</div> foreach (var k in ViewBag.hasNameClass) { <div> First=@k.First ,Last=@k.Last</div> } <br /> <div style="background-color: Yellow;"> 使用数组下标,检索出第一科成绩大于80分的学生</div> foreach (var m in ViewBag.studentQuery) { <div> First=@m.First ,Last=@m.Last</div> } <br /> <div style="background-color: Yellow;"> 使用对应参数返回字符串</div> foreach (var n in ViewBag.studentQuery1) { <div> @n</div> } <br /> <div style="background-color: Yellow;"> 使用group by,取数据要两层循环</div> foreach (var p in ViewBag.studentQuery2) { foreach (var g in p) { <div>我是 @g.Last @g.First</div> } } <br /> }
相关文章推荐
- <笔试><面试>编写一个排序函数,实现,既可以排序整形数组,又可以排序字符串。
- C#基础学习日志===&gt;数组&lt;===
- swift 字符串,数组,字典 的那些事<一>
- swift 字符串,数组,字典 的那些事<二>
- cpp如何快速安全地将文件读入字符串string或字符数组vector<string>的方法
- linq返回的IEnumerable<T>泛型不能被列举计算大于1次
- 从零开始学_JavaScript_系列(15)——js系列<4>(数值、字符串、对象、数组、函数、日期的基本方法)
- 用string.Join与List<T>或者与string数组转换为字符串
- <Head First Java>学习笔记--第四章:方法操作实例变量 对象的行为
- 给定一个字符串,里面用空格分开为多个(>=6)部分组合,如:01 02 03 04 05 06 07 …… 写一个函数返回任意6个组合的字符串: 输出格式实例: 01 02 03 04 05 06 0
- swift 字符串,数组,字典 的那些事<三>
- Java笔记1 Java编程基础<2>循环语句、函数(重载)、变量和数组的内存结构
- Hadoop学习<一>--hadoop安装和环境变量设置
- java 后台使用gson 将json字符串转换为List<Map<String,object>> 数组
- 【分治法】在数组A中,返回i<j,且A[i]>A[j]的(i,j)配对的数量
- <<C语言深度剖析>>学习笔记之五:指针与数组
- js数租,对象, 数组,字符串,函数,变量,int与String 型转化,String 转化为js 中内部代码,编码格式转化,<a>标签的死链接
- R语言学习笔记之<字符串操作>
- VB 字节数组和字符串的转换问题 (String<>Byte)