zoukankan      html  css  js  c++  java
  • 浅谈Tuple之C#4.0新特性

    一、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我们只需要这样:

    Tuple<int,string> a=new Tuple<int,string>(1001,'CodeL');

    Console.WriteLine(a.Item2);//Item1 代表第一个,Item2代表第二个


    这样我们就可以不用为了 一些简单的结构或对象而去新建一个类了。
    注意的是tuple最多支持8个成员,注意第8个成员很特殊,如果有8个成员,第8个必须是嵌套的tuple类型。

    列如: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

    }

  • 相关阅读:
    用友软件T3出纳通提示单据锁定
    保存单据时提示“计量单位组不正确”
    cxgrid导出数据的格式设置(转载)
    会话打印机不会自动删除解决方法
    用友U8总账对账不平问题总结
    存货核算期初无法从库存取数
    SQL Server 2000 数据库日志太大!如何管理,清除,变小,压缩它
    Delphi控件cxGrid 如何动态创建列?
    关于Treeview 选中节点高亮有关问题
    U8远程接入客户端重新安装问题
  • 原文地址:https://www.cnblogs.com/liangss/p/5143396.html
Copyright © 2011-2022 走看看