DotNET:LINQ对泛型(Generic)操作和泛型方法及属性
ylbtech-DotNET:泛型(Generic)和LINQ操作 |
- 1,遍历泛型集合
- 2,根据索引位置移除项(RemoveAt())
- 3,查询一个人(Single())
- 3.2,查询一个人(Single()(复合条件查询(同时满足))
- 3.3,查询一个人(Single()(复合条件查询(任何一个满足即可))
- 4,属性列表(Sum,Average,Max,Min)
- 5,把泛型转为PersonInfo数组集合(ToArray()),并遍历输出
- 6,把泛型转为Dictionary数据词典(ToDictionary()),并遍历输出
- 7,把泛型转为List列表(ToList()),并遍历输出
- 8,把泛型转为ILookup【没做出】
- 9,【没做出】
- 10,排序【没做出】
技术与环境返回顶部 |
操作系统: | windows | 语言类别: | C# |
thankyou: | ylbtech, 谢谢你的默默付出 | 课题: | 泛型(Generic)和LINQ操作 |
学习软件: | Microsoft Visaul Studio 2010 |
1,什么是泛型和LINQ? |
引用:百度百科-泛型
引用:百度百科-LINQ
2,LINQ对泛型(Generic)操作和泛型方法及属性代码返回顶部 |
using System; using System.Collections.Generic; using System.Linq;using System.Collections; public partial class Geniric : System.Web.UI.Page {/// <summary>/// 1,遍历泛型集合/// </summary>/// <param name="dals"></param>private void Write(IList<PersonInfo> dals){string tableHead = "<table style='background-color:yellow;'><tr><td>编号</td><td>姓名</td><td>年龄</td><td>性别</td></tr>";string tableTr = "<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td></tr>";string tableFoot = "</table>";Response.Write(tableHead);foreach (PersonInfo dal in dals){Response.Write(string.Format(tableTr, dal.Id, dal.Name, dal.Age, dal.Sex));}Response.Write(tableFoot);}/// <summary>/// 2,根据索引位置移除项/// </summary>/// <param name="dals"></param>/// <param name="index"></param>private void RemoveAt(IList<PersonInfo> dals, int index){dals.RemoveAt(index);}/// <summary>/// 3,查询一个人/// </summary>/// <param name="id">编号</param>/// <param name="dals"></param>private void Single(int id, IList<PersonInfo> dals){PersonInfo dal = dals.Single(c => c.Id == 2);if (dal != null){Response.Write(string.Format("编号:{0},姓名:{1},年龄:{2},性别:{3}。", dal.Id, dal.Name, dal.Age, dal.Sex));}else{Response.Write("此编号不存在。");}}/// <summary>/// 3.2,查询一个人(复合条件查询(同时满足))/// </summary>/// <param name="id">编号</param>/// <param name="name">姓名</param>/// <param name="dals"></param>private void Single(int id, string name, IList<PersonInfo> dals){PersonInfo dal = dals.Single(c => c.Id == 2 && c.Name == name);if (dal != null){Response.Write(string.Format("编号:{0},姓名:{1},年龄:{2},性别:{3}。", dal.Id, dal.Name, dal.Age, dal.Sex));}else{Response.Write("此编号不存在。");}}/// <summary>/// 3.3,查询一个人(复合条件查询(任何一个满足即可))/// </summary>/// <param name="id">编号</param>/// <param name="name">姓名</param>/// <param name="dals"></param>private void Single2(int id, string name, IList<PersonInfo> dals){PersonInfo dal = dals.Single(c => c.Id == 2 || c.Name == name);if (dal != null){Response.Write(string.Format("编号:{0},姓名:{1},年龄:{2},性别:{3}。", dal.Id, dal.Name, dal.Age, dal.Sex));}else{Response.Write("此编号不存在。");}}/// <summary>/// 4,属性列表/// </summary>private void Attributes(IList<PersonInfo> dals){Write(dals);Response.Write("<hr>");//attr:1,Response.Write(string.Format("包含项数量:{0}<br>", dals.Count));var idSum = dals.Sum(p => p.Id);Response.Write(string.Format("编号总和:{0}<br>", idSum));var ageAvg = dals.Average(p => p.Age);Response.Write(string.Format("平均年龄:{0}<br>", ageAvg));var ageMax = dals.Max(p => p.Age);Response.Write(string.Format("最大年龄:{0}<br>", ageMax));var ageMin = dals.Min(p => p.Age);Response.Write(string.Format("最小年龄:{0}<br>", ageMin));}/// <summary>/// 5,把泛型转为PersonInfo数组集合,并遍历输出/// </summary>/// <param name="dals"></param>private void ToArray(IList<PersonInfo> dals){PersonInfo[] pArray = dals.ToArray();foreach (PersonInfo p in pArray){Response.Write(string.Format("编号:{0},姓名:{1},年龄,{2}性别:{3}<br>", p.Id, p.Name, p.Age, p.Sex));}}/// <summary>/// 6,把泛型转为Dictionary数据词典,并遍历输出/// </summary>/// <param name="dals"></param>private void ToDictionary(IList<PersonInfo> dals){Dictionary<int, PersonInfo> dalsDict = dals.ToDictionary(p => p.Id);foreach (int key in dalsDict.Keys){PersonInfo dalDict = dalsDict[key];Response.Write(string.Format("编号:{0},姓名:{1},年龄,{2}性别:{3}<br>", dalDict.Id, dalDict.Name, dalDict.Age, dalDict.Sex));}}/// <summary>/// 7,把泛型转为List列表,并遍历输出/// </summary>/// <param name="dals"></param>private void ToList(IList<PersonInfo> dals){List<PersonInfo> dalsList = dals.ToList();foreach (PersonInfo p in dalsList){Response.Write(string.Format("编号:{0},姓名:{1},年龄,{2}性别:{3}<br>", p.Id, p.Name, p.Age, p.Sex));}}/// <summary>/// 8,把泛型转为ILookup,/// 【没做出】/// </summary>/// <param name="dals"></param>private void ToLookup(IList<PersonInfo> dals){ILookup<int, string> dalsLookup = dals.ToLookup(p => p.Id, p => p.Name);for (int i = 0; i < dalsLookup.Count; i++){//Response.Write(string.Format("{0}<br>",dalsLookup[i].)); }}/// <summary>/// 9,/// 【没做出】/// </summary>/// <param name="dals"></param>private void UnionWhereZip(IList<PersonInfo> dals){IList<PersonInfo> dals2 = new List<PersonInfo>();dals2.Add(new PersonInfo() { Id = 11, Name = "rain", Age = 23, Sex = "男" });dals2.Add(new PersonInfo() { Id = 22, Name = "tly", Age = 30, Sex = "女" });dals2.Add(new PersonInfo() { Id = 3, Name = "zyn", Age = 25, Sex = "女" });dals2.Add(new PersonInfo() { Id = 4, Name = "yxq", Age = 23, Sex = "女" });dals2.Add(new PersonInfo() { Id = 5, Name = "yhw", Age = 26, Sex = "男" });dals.Union(dals2);Write(dals);}/// <summary>/// 10,排序/// 【没做出】/// </summary>/// <param name="dals"></param>private void OrderBy(IList<PersonInfo> dals){Write(dals);Response.Write("<hr>");dals.OrderBy(p => p.Age);Write(dals);}/// <summary>/// ylbtech:对泛型集合操作/// </summary>/// <param name="sender"></param>/// <param name="e"></param>protected void Page_Load(object sender, EventArgs e){IList<PersonInfo> dals = new List<PersonInfo>();dals.Add(new PersonInfo() { Id = 1, Name = "rain", Age = 23, Sex = "男" });dals.Add(new PersonInfo() { Id = 2, Name = "tly", Age = 30, Sex = "女" });dals.Add(new PersonInfo() { Id = 3, Name = "zyn", Age = 25, Sex = "女" });dals.Add(new PersonInfo() { Id = 4, Name = "yxq", Age = 23, Sex = "女" });dals.Add(new PersonInfo() { Id = 5, Name = "yhw", Age = 26, Sex = "男" });//输出年龄最大//1,//Write(dals);//2,//RemoveAt(dals,1);//Write(dals);//3,//Single(2, dals);//dals.Clear(); //移除所有的项//Write(dals);//4,//Attributes(dals);//5,//ToArray(dals); //6,//ToDictionary(dals);//7,//ToList(dals);//8,//ToLookup(dals);// IEnumerable<PersonInfo> dalIEnum = dals.Where(p => p.Id == 1);//PersonInfo dal = (PersonInfo)dals.Where(p => p.Id == 1);//dalIEnum. Response.End();} }
3,使用泛型(Generic)有哪些好处?返回顶部 |
- 泛型类和泛型方法同时具备可重用性、类型安全和效率,这是非泛型类和非泛型方法无法具备的。
- 泛型是c#2.0的一个新增加的特性,它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。
DotNET:LINQ对泛型(Generic)操作和泛型方法及属性相关推荐
- 泛型方法的定义和使用_泛型( Generic )
泛型(Generic) 1. 泛型概述 泛型是一个未知的, 不确定的数据类型. 比如ArrayList 中的E, 就是一个未知的不确定的数据类型, 那么他就是一个泛型 泛型虽然是一个未知的, 不确定的 ...
- java泛型(Generic)超详细
目录 1.为什么要有泛型(Generic)? 2.泛型的设计背景 2.1那么为什么要有泛型呢,直接Object不是也可以存储数据吗? 3.在集合中使用泛型 4.自定义泛型结构 4.1自定义泛型结构:泛 ...
- 你真的了解泛型 Generic 嘛?
泛型 Generic Programming[1] 通常指允许程序员在强类型程序设计语言中,编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型,即类型参数化 首先我们不是科班讨论学术, ...
- Java - 泛型 ( Generic )
Java - 泛型 ( Generic ) > 泛型的特点 > 解决元素存储的安全性问题 > 解决获取数据元素时,需要类型强转的问题 > 不能在 static 方法中使用泛型, ...
- 【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )
文章目录 一.泛型类用法 二.泛型方法用法 三.泛型通配符 <?> 四.泛型安全检查 五.完整代码示例 1.泛型类 / 方法 2.main 函数 一.泛型类用法 泛型类用法 : 使用时先声 ...
- C# LINQ学习笔记四:LINQ to OBJECT之操作文件目录
本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5816051.html,记录一下学习过程以备后续查用. 许多文件系统操作实质上是查询,因此非常适合使用LINQ方 ...
- 泛型(generic)概述和基本使用
泛型(generic)概述和基本使用 A:泛型概述 集合边上有一个尖括号,尖括号指的就是泛型. 限定集合存储的数据类型,如果加上这个引用数据类型, 就告诉你这个集合只能存储该类型对象和该类型的子类对象 ...
- js如何操作表格(常用属性方法汇总)
js如何操作表格(常用属性方法汇总) 一.总结 一句话总结: 二.表格相关的属性和方法 1.1 Table 对象集合 cells[] 返回包含表格中所有单元格的一个数组. 语法:tableObject ...
- jq追加html属性,jQuery 操作 HTML 元素和属性的方法
jQuery拥有操作 HTML 元素和属性的强大方法. 1. 获取HTML 元素的内容和属性 (1) 获得内容: text().html() 以及 val()方法 My Test JQuery $( ...
最新文章
- 混合app用百分比还是rem_一次搞懂前端所有CSS长度单位,px、em、rem、rpx、%....
- CAS KVM 虚拟机的保护与恢复
- JAVA中this用法小结
- 程序员面试题精选100题(49)-复杂链表的复制[算法]
- 如何判断数组是静态还是动态分配的
- PHP7.0连接DB
- 单目摄像头光学图像测距_自动驾驶汽车传感器技术解析——车载摄像头
- while 循环判断时 遇到赋值表达式
- RN和React路由详解及对比
- Resteasy配置及其使用
- 大屏导航Linux系统下载,掌讯方案MTK3561大屏导航ROOT固件
- CentOS 8 下载安装stress实际操作以及实际应用,以及遇到的问题
- git push reject 解决方案
- java 求球体表面积_java设计:计算圆的面积和球体的体积,在一个类中用两种方法实现...
- maven本地有包但是引不进来 已解决
- webpack常见面试题
- 计算机英语说明文,英语说明文
- 工作上遇到困难,你该怎样获得他人的支持和帮助?
- 电子商务网站之购买欲望和购买目标
- 全方位了解平台爆款,解析B站热销商品,实现电商变现
热门文章
- scala case语句_Scala模式与case语句匹配
- java cmd测试_Java SE 9:使用CMD提示开发和测试简单模块(第3部分)
- 2019.10.15学习总结
- 哪些趋势正在推动人工智能创新?
- [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.
- mysql5.7编译安装
- Oracle SUn
- ps -ef|grep httpServer|grep -v grep|cut -c 9-15|xargs kill -9
- Iptables详解之iptables命令的参数
- Leetcode 931.下降路径最小和