收藏 分享(赏)

C#第3版第5章习题解答.doc

上传人:tkhy51908 文档编号:5886745 上传时间:2019-03-20 格式:DOC 页数:4 大小:45.50KB
下载 相关 举报
C#第3版第5章习题解答.doc_第1页
第1页 / 共4页
C#第3版第5章习题解答.doc_第2页
第2页 / 共4页
C#第3版第5章习题解答.doc_第3页
第3页 / 共4页
C#第3版第5章习题解答.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Ch5 泛型与 LINQ 习题解答1假设 Node 类的每一个节点包括有两个字段: m_data(引用节点的数据)和 m_next(引用链接列表中的下一项) ,这两个字段都是由构造函数方法设置的。该类有两个功能,第 1个功能是通过名为 Data 和 Next 的只读属性访问 m_data 和 m_next 字段,第 2 个功能是对System.Object 的 ToString 虚拟方法进行重写。试分别用类和泛型两种方法编写程序实现上述功能。【解答】using System;class NodeObject m_data;Node m_next;public Node(Object data,

2、 Node next)m_data = data;m_next = next;/访问结点数据public Object Dataget return m_data; /访问下一个结点public Node Nextget return m_next; / 获取结点数据描述public override String ToString()return m_data.ToString();/链表结点类的泛型定义class NodeT m_data;Node m_next;public Node(T data, Node next)m_data = data;m_next = next;/ 访问结点

3、数据public T Data第 5 章 泛型和 LINQ get return m_data; set m_data = value; / 访问下一个结点public Node Nextget return m_next; set m_next = value; / 获取结点数据描述public override String ToString()return m_data.ToString();/ 使用结点类型或泛型结点类型class LinkedListstatic void Main(string args)/ 创建整数链表/Node head = new Node(5, null);

4、/head = new Node(10, head);/head = new Node(15, head);/遍历链表求整数和/Int32 sum = 0;/for (Node current = head; current != null;/ current = current.Next)/ sum += (Int32)current.Data;/ 输出结果/Console.WriteLine(“Sum of nodes = 0“, sum);/ 用泛型创建整数链表Node head = new Node(5, null);head = new Node(10, head);head = n

5、ew Node(15, head);/ 遍历求和Int32 sum = 0;for (Node current = head; current != null;current = current.Next)sum += current.Data;/ 输出Console.WriteLine(“Sum of nodes = 0“, sum.ToString();2. 编写程序创建一个的排序列表,向其添加 5 个元素后,按逆序方式显示列表中每一项的 value 值(string 类型的值).【解答】第 5 章 泛型和 LINQ using System;using System.Collection

6、s.Generic;using System.Linq;using System.Text;namespace ConsoleApplicationclass Programstatic void Main(string args)SortedList list = new SortedList();list.Add(10, “str10“);list.Add(2, “str2“);list.Add(13, “str13“);list.Add(24, “str24“);list.Add(15, “str15“);for (int i = list.Keys.Count - 1; i = 0;

7、i-)Console.WriteLine(listlist.Keysi);Console.ReadLine();3. 使用 LINQ 查询有哪些优势?什么是 LINQ 的延迟执行和立即执行?【解答】LINQ 是一组查询技术的统称。其主要思想是将各种查询功能直接集成到 C#语言中,不论是对象、XML 还是数据库,都可以用 C#语法编写查询语句。换言之,利用 LINQ 查询数据源就像用 C#使用类、方法、属性和事件一样,完全用 C#语法来构造,并具有完全的类型检查和智能提示(IntelliSense)支持。LINQ 执行查询时,一般利用 foreach 循环执行查询得到一个序列,这种方式称为“延迟

8、执行” 。对于聚合函数,如 Count、Max、Average、First,由于返回的只是一个值,这类查询在内部使用 foreach 循环实现,而开发人员只需要调用 LINQ 提供的对应方法即可,这种方式称为“立即执行” 。4.创建一个 List列表,向列表中添加 10 个元素,分别使用 LINQ、lambda 表达式两种方式查找列表中的偶数,并在控制台输出。【解答】using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplicationclass

9、 Programstatic void Main(string args)第 5 章 泛型和 LINQ List intList = new List 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;Console.WriteLine(“使用 LINQ 查询列表:“);var query1 = from t in intListwhere t % 2 = 0select t;foreach (var m in query1)Console.Write(m + “ “);Console.WriteLine();Console.WriteLine(“使用 Lamdam 查询列表:“);var query2 = intList.Where(x = x % 2 = 0);foreach (var m1 in query2)Console.Write(m1 + “ “);Console.ReadLine();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 试题课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报