在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
来源:微信公众号CodeL 今天给大家分享的内容基于前几天收到的一条留言信息,留言内容是这样的:
看了这位网友的留言相信有不少刚接触开发的童鞋们也会有同样的困惑,除了用新建类作为桥梁之外还有什么好的办法?很多童鞋肯定会想到DataSet,不错,DataSet完全可以实现各种数据集的传递,而且还很方便,但是一般我们更推荐使用List集合,那么List集合如何在不确定属性和类的时候传递包含多个字段的集合呢?为一些简单的结构而新建一个类显然是不合理的。 一、4.0新特性中的Tuple 大家可以回顾一下c#4.0中增加的一个新特性,元组Tuple,它是一种固定成员的泛型集合:
创建一个包含7个元素的Tuple数组 // Create a 7-tuple. var population = new Tuple<string, int, int, int, int, int, int>( "New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278);// Display the first and last elements. Console.WriteLine("Population of {0} in 2000: {1:N0}",population.Item1, population.Item7); public class A{ public int ID{get;set;} public string Name{get;set;} } A a=new A(){ID=1001,Name='CodeL'}; Console.WriteLine(a.Name);
Tuple<int,string> a=new Tuple<int,string>(1001,'CodeL'); Console.WriteLine(a.Item2);//Item1 代表第一个,Item2代表第二个
列如:Tuple<string, int, int, int, int, int, int, Tuple<int, int, int>> 红色部分是第8个。 第8个元素使用方法:对象.Rest.Item1,对象.Rest.Item2
二、实际场景举例 我们使用Tuple来完成一次简单数据集的传递工作。 将Tuple作为返回值 public List<Tuple<int,string,DateTime>> GetUsers(){ string sql="select ID,Name,CreateTime from Tbl_Users"; using (SqlDataReader r = SqlHelper.ExecuteReader(Connections.AdminDBConString, CommandType.Text, sql)) { List<Tuple<int,string,DateTime>> list = new List<Tuple<int,string,DateTime>>(); while (r.Read()) { Tuple<int,string,DateTime> t = new Tuple<int,string,DateTime>(Convert.ToInt32(r[0]),r[1].ToString(),Convert.ToDatetime(r[2])); list.Add(t); } return list; } } List<Tuple<int,string,datetime>> list=GetUsers(); foreach(Tuple<int,string,datetime> t in list) { Console.write(t.Item1);//ID Console.write(t.Item2);//Name Console.write(t.Item3);//CreateTime } 到这里大家是不是明白了,上面那位童鞋的问题原来可以这么解决。 个人建议一些简单的结构下可以这么使用,过于复杂的对象结构由于Tuple本身的一些限制(如:最多支持8项内容,超过的需要使用TRest)而操作复杂,我在实际开发中使用Tuple最多嵌套过一层Tuple。 大家在平时的工作学习中可以多多了解更多常用的基本知识,很多看起来不起眼的小东西将会在开发过程中起到非常大的作用。 微信扫一扫获取更多开发资源:
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论