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#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。
本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/archive/2013/01/15/2860104.html,如需转载请自行联系原作者

DotNET:LINQ对泛型(Generic)操作和泛型方法及属性相关推荐

  1. 泛型方法的定义和使用_泛型( Generic )

    泛型(Generic) 1. 泛型概述 泛型是一个未知的, 不确定的数据类型. 比如ArrayList 中的E, 就是一个未知的不确定的数据类型, 那么他就是一个泛型 泛型虽然是一个未知的, 不确定的 ...

  2. java泛型(Generic)超详细

    目录 1.为什么要有泛型(Generic)? 2.泛型的设计背景 2.1那么为什么要有泛型呢,直接Object不是也可以存储数据吗? 3.在集合中使用泛型 4.自定义泛型结构 4.1自定义泛型结构:泛 ...

  3. 你真的了解泛型 Generic 嘛?

    泛型 Generic Programming[1] 通常指允许程序员在强类型程序设计语言中,编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型,即类型参数化 首先我们不是科班讨论学术, ...

  4. Java - 泛型 ( Generic )

    Java - 泛型 ( Generic ) > 泛型的特点 > 解决元素存储的安全性问题 > 解决获取数据元素时,需要类型强转的问题 > 不能在 static 方法中使用泛型, ...

  5. 【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )

    文章目录 一.泛型类用法 二.泛型方法用法 三.泛型通配符 <?> 四.泛型安全检查 五.完整代码示例 1.泛型类 / 方法 2.main 函数 一.泛型类用法 泛型类用法 : 使用时先声 ...

  6. C# LINQ学习笔记四:LINQ to OBJECT之操作文件目录

    本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5816051.html,记录一下学习过程以备后续查用. 许多文件系统操作实质上是查询,因此非常适合使用LINQ方 ...

  7. 泛型(generic)概述和基本使用

    泛型(generic)概述和基本使用 A:泛型概述 集合边上有一个尖括号,尖括号指的就是泛型. 限定集合存储的数据类型,如果加上这个引用数据类型, 就告诉你这个集合只能存储该类型对象和该类型的子类对象 ...

  8. js如何操作表格(常用属性方法汇总)

    js如何操作表格(常用属性方法汇总) 一.总结 一句话总结: 二.表格相关的属性和方法 1.1 Table 对象集合 cells[] 返回包含表格中所有单元格的一个数组. 语法:tableObject ...

  9. jq追加html属性,jQuery 操作 HTML 元素和属性的方法

    jQuery拥有操作 HTML 元素和属性的强大方法. 1. 获取HTML 元素的内容和属性 (1) 获得内容:  text().html() 以及 val()方法 My Test JQuery $( ...

最新文章

  1. 混合app用百分比还是rem_一次搞懂前端所有CSS长度单位,px、em、rem、rpx、%....
  2. CAS KVM 虚拟机的保护与恢复
  3. JAVA中this用法小结
  4. 程序员面试题精选100题(49)-复杂链表的复制[算法]
  5. 如何判断数组是静态还是动态分配的
  6. PHP7.0连接DB
  7. 单目摄像头光学图像测距_自动驾驶汽车传感器技术解析——车载摄像头
  8. while 循环判断时 遇到赋值表达式
  9. RN和React路由详解及对比
  10. Resteasy配置及其使用
  11. 大屏导航Linux系统下载,掌讯方案MTK3561大屏导航ROOT固件
  12. CentOS 8 下载安装stress实际操作以及实际应用,以及遇到的问题
  13. git push reject 解决方案
  14. java 求球体表面积_java设计:计算圆的面积和球体的体积,在一个类中用两种方法实现...
  15. maven本地有包但是引不进来 已解决
  16. webpack常见面试题
  17. 计算机英语说明文,英语说明文
  18. 工作上遇到困难,你该怎样获得他人的支持和帮助?
  19. 电子商务网站之购买欲望和购买目标
  20. 全方位了解平台爆款,解析B站热销商品,实现电商变现

热门文章

  1. scala case语句_Scala模式与case语句匹配
  2. java cmd测试_Java SE 9:使用CMD提示开发和测试简单模块(第3部分)
  3. 2019.10.15学习总结
  4. 哪些趋势正在推动人工智能创新?
  5. [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.
  6. mysql5.7编译安装
  7. Oracle SUn
  8. ps -ef|grep httpServer|grep -v grep|cut -c 9-15|xargs kill -9
  9. Iptables详解之iptables命令的参数
  10. Leetcode 931.下降路径最小和