.Net 之Tuple 类
Tuple是什么
按照Msdn 上说:提供用于创造元组对象的静态方法。从字面意思并不能理解他的作用;
Tuple 是个静态类,提供8个静态泛型方法;T 可以是值类型,也可是引用类型;
使用场景
C#语言中,相信大家对ref 和out。一定不陌生,就是一个函数需要返回多个值的时候,我们一般都采用Ref 或者Out ;
但是,在C# 编码最佳实践中,不建议用Ref 或者Out 来返回多个结果;这时Tuple 就派上用场了。Tuple将返回的结果打包一并返回给调用者;
这样就相当方便;
场景1
在MVC或者MVVM开发中,如果一个View 需要多个ViewModel的时候, 你就可以件ViewModel 一并打包到Tuple,然后返回给View
下面已MVC 为例, 我在这里简单设计,只是为了演示Tuple,在实际项目过程请参考最佳实际设计中。例如:
public class UserInfoViewModel
{
public string UserId{get;set;}
public string UserName{get;set;}
}
public class AddressViewModel
{
public string CityId{get;set;}
public string CityName{get;set;}
}
public calss UserController:Controller
{
public Action UserInfo()
{
var mTuple =new Tuple<UserInfoViewModel,AddressViewModel>();
// 构造UserInfoViewModel数据
// 构造AddressViewModel数据
return View(mTuple );
}
}
场景2
对于在数据导入的时候,我需要知道导入结果和导入失败结果;例如:
有下面这样一个函数:
private bool ImportData( string exlPath,out DataTable errDataTbl)
{
bool mImpResult=false;
try{
//导入操作
}
catch
{
// 记录导入错误数据行 ,将记录插入到 errDataTbl
}
return mImpResult;
}
但是如果使用 Tuple ,上面方法就改成:
private Tuple<bool,DataTable> ImportData( string exlPath)
{
var mTuple =new Tuple<bool,DataTable>();
try{
//导入数据操作
}
catch(){
/// 记录导入错误的数据
}
return mTuple ;
}
参考地址:MSDN 上Tuple类介绍
.Net 之Tuple 类的更多相关文章
- Python基础 之 tuple类-元组 和 dict类-字典
tuple 元组 一.tuple 类的基本属性 1.元组,有序:元素不可被修改,不能被增加或者删除tuple类 tu = (111,22,33,44) 一般写元组的时候,推荐在最后加入,和类方法进行区 ...
- python __builtins__ tuple类 (68)
68.'tuple', 转换为元组类型 class tuple(object) | tuple() -> empty tuple | tuple(iterable) -> tuple in ...
- 详解C# Tuple VS ValueTuple(元组类 VS 值元组)
C# 7.0已经出来一段时间了,大家都知道新特性里面有个对元组的优化,并且网上也有大量的介绍,这里利用详尽的例子详解Tuple VS ValueTuple(元组类VS值元组),10分钟让你更了解Val ...
- 【.NET深呼吸】元组数据(Tuple)
各位观众,大家好,欢迎收看由火星电视台直播的<老周吹牛>节目,注意:本节目没有任何技术含量,如果您没有兴趣,请砸掉电视机. 今天说一下System命名空间下的一个数据类型——Tuple,翻 ...
- c# 元组Tuple
Tuple类型像一个口袋,在出门前可以把所需的任何东西一股脑地放在里面.您可以将钥匙.驾驶证.便笺簿和钢笔放在口袋里,您的口袋是存放各种东西的收集箱.C# 4.0引入的一个新特性 Tuple类型与口袋 ...
- .NET Framework 4.0之Tuple(元组)
Tuple,是函数式编程的概念之一,早见于Elang.F#等动态语言.Tuple类型像一个口袋,在出门前可以把所需的任何东西一股脑地放在里面.您可以将钥匙.驾驶证.便笺簿和钢笔放在口袋里,您的口袋是存 ...
- Tuple类型
Tuple类型类似的体现了C#中的匿名类型 var person=new { Name="Eric"; Age=18: } 调用: Console.writeline( perso ...
- python_list和tuple互转
Python中,tuple和list均为内置类型, 以list作为参数将tuple类初始化,将返回tuple类型 tuple([1,2,3,4]) list->tuple 以tuple做为参数, ...
- STL其他--<tuple>用法【C11】
tuple 库 tuple 库 是能够将不同类型的对象组合起来形成一个对象.和pair 对象一样,但是可以组织多种不同类型的元素. tuple中的元素类型是在编译时期决定的.与<utility ...
随机推荐
- HBase学习2(HBase shell)
HBase 常用命令 查看当前用户:whoami 创建表:create '表名', '列族名1','列族名2','列族名N' 查看所有表:list 描述表: describe '表名' 判断表存在: ...
- 集群环境ssh免密码登录设置
一.准备工作 1) 用客户端工具(ssh client或者putty)连接到linux服务器.在root用户下输入命令 vi /etc/hosts,用vi编辑hosts文件,如下: #127.0.0. ...
- QT 利用ListWidget 和 StackedLayout 配合实现 分页 选项
1. 如图, 左边为listwidget,右边为StackedLayout, 通过listwidget的不同选项,可以使右边的不同页显示出来. 2. dialog.h #ifndef DIALOG_H ...
- java八大基本类型介绍
//今天说一下java的八大基本类型: // 数字类型:byte(8位).short(16位).int(32位).long(64位) //浮点类型:float(32位).double(64位) //字 ...
- js组合模式
组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构.组合模式使得用户对单个对象和组合对象的使用具有一致性. 透明方式,也就是说在Commponent中声明所有用来管理子 ...
- 按键(ESC ,F1,F2等)——wpf的命令处理方法
WPF窗体的命令绑定 方法一:使用代码 <WpfUI:View.CommandBindings> <CommandBinding Command="Help" ...
- MSDN 单机 MVC 帮助文档
因为微软的mvc框架也是从开源框架演变而来的,所以微软没把mvc帮助文档放到单击帮助文档中.sososos下载好msdn单机帮助后,却找不到 System.Web.MVC 等命名空间的东西. 解决办法 ...
- C++中内部类访问外部类的私有成员
首先,如果不知道什么是内部类InnerClass的话,就没必要往下看了. 尝试在C++中模仿apple objective-c 的Grand Dispatch简化多线程编程时,使用了boost::fu ...
- JDK所有版本
http://www.oracle.com/technetwork/java/archive-139210.html
- LeetCode OJ:Binary Tree Level Order Traversal II(二叉树的层序遍历)
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...