C# tuple元组详解
创始人
2025-05-30 00:59:16
0

概念

本质就是个数据结构,它是将多个数据元素分组成一个轻型数据结构。

如何声明元组变量(针对.net framework 4.7+ 和 .net core 2.0+)

不带字段名称元组

## t1就是个变量 它的类型是元组类型
## 左侧括号定义的是参数列表  等于号右侧就是个t1赋值
## 需要注意等号左右侧 参数个数要一致 且对应位的数据类型要匹配一致
(double, int) t1 = (4.5, 3);

不带字段名称元组的取值

## 使用 变量,ItemN 其中第一位就是Item1 第二位就是Item2 依次类推
var ontValue =t1.Item1;
var twoValue =t1.Item2;
...
var NValue =t1.ItemN;

带字段名称的元组

## 定义方式一 其中A和B就是元组的字段
(double A, int B) t1 = (4.5, 3);
## 定义方式二  其中A和B就是元组的字段
var t1 = (A:4.5, B:3);

带字段名称元组的取值

### 获取字段A和B
double _A=t1.A;
int _B =t1.B;

带字段名称元组的赋值

t1.A =30.8;
t1.B =90;

在.net framework 4.7以下版本

(反正2023-03-18之前没有把上述的新特性加入)
在低版本下需要使用Tuple(静态类)

语法:

Tuple
由上面可以看出 除非是嵌套的元组 ,普通的最多只能有8位元素

如何声明元组变量

## 方式一 使用静态方法Create
var t2= Tuple.Create(90, "程序员Ken", 8.05);## 方式二 
Tuple t2 = new Tuple(90, "程序员Ken", 8.05);

取值

### 跟上面的类似 可以看看“不带字段名称元组的取值”
int _item1=t2.Item1;
string _item2 =t2.Item2;
double _item3 =t2.Item3;

嵌套元组

如果要在一个元组中包含八个以上的元素,则可以通过嵌套另一个元组对象作为第八个元素来实现。可以使用Rest属性访问最后一个嵌套元组。要访问嵌套元组的元素,请使用

var numbers = Tuple.Create(1, 2, 3, 4, 5, 6, 7, Tuple.Create(8, 9, 10, 11, 12, 13));
numbers.Item1; // 返回第1个元素 
numbers.Item7; // 返回第7个元素 
numbers.Rest.Item1; //返回就是第8个元素(另一个元组)  实际值(8,9,10,11,12,13)

元组的用法

元组可以在以下情况下使用:

当您想从一个方法中返回多个值而不使用ref 或 out参数时。
当您想通过单个参数将多个值传递给方法时。
当您想暂时保存数据库记录或某些值而不创建单独的类时。。

元组缺点:

Tuple是一个引用类型,而不是一个值类型。它在堆上分配,并可能导致CPU密集型操作。
Tuple被限制为包括八个元素。如果需要存储更多元素,则需要使用嵌套元组。但是,这可能导致歧义。

相关视频:https://www.bilibili.com/video/BV1M84y1A7dp/

相关内容

热门资讯

安卓系统的总体框架,架构与核心... 你有没有想过,你的手机里那个神奇的安卓系统,它到底是怎么运作的呢?今天,就让我带你一探究竟,揭开安卓...
谁的安卓系统好,谁家的安卓系统... 说到安卓系统,这可是个热门话题呢!你有没有想过,这么多安卓手机品牌,哪个的操作系统最让你心动?今天,...
安卓系统信付通,安全无忧的移动... 你知道吗?在安卓手机的世界里,有一个超级好用的支付工具,它就是信付通。今天,就让我带你来全方位了解一...
小米官方系统安卓包,深度解析与... 亲爱的数码爱好者们,你是否曾为手机系统而烦恼?市面上那么多手机品牌,各种操作系统让人眼花缭乱。今天,...
自制安卓手机双系统,自制安卓手... 你有没有想过,自己的手机可以同时运行两个操作系统呢?没错,就是那种安卓手机双系统!听起来是不是很酷?...
小米安卓系统怎么设置,科技前沿... 小米手机的用户们,是不是觉得安卓系统有点复杂,设置起来有点头疼呢?别担心,今天就来手把手教你如何轻松...
点歌系统支持安卓系统么,安卓用... 你有没有想过,在手机上点歌听歌,是不是也能像在KTV里那样随心所欲呢?现在,就让我来告诉你一个超级酷...
原版安卓系统刷机,解锁无限可能 你有没有想过,你的安卓手机其实可以焕然一新?没错,就是那种原汁原味的安卓系统,让你的手机重新找回当初...
欧尚改装安卓系统,打造智能驾驶... 你有没有想过,你的欧尚汽车其实也可以变身成为智能座驾呢?没错,就是那个你每天上下班的伙伴——欧尚,现...
安卓系统最新事件,揭秘最新重大... 你知道吗?最近安卓系统可是发生了一件超级大事件,简直让人兴奋得心跳加速!这不,我就迫不及待地来和你分...
早期电话手表安卓系统,安卓系统... 你有没有想过,小时候那些看似简单的玩具,现在竟然也能玩出花来?比如,早期的电话手表,那时候的功能可真...
安卓老系统手机游戏,安卓老系统... 你有没有发现,那些安卓老系统手机,虽然看起来有点古老,但它们在游戏界可是有着自己独特的魅力呢!想象那...
安卓系统重启还是开关,重启与开... 手机突然卡壳了,是不是又该给安卓系统来个重启大法了?别急,今天就来聊聊这个让人又爱又恨的“安卓系统重...
安卓系统刷入iso,轻松实现个... 你有没有想过,你的安卓手机其实可以像变形金刚一样,换上全新的“皮肤”?没错,就是刷入ISO系统!这可...
安卓机系统无法关机,探究原因与... 最近我的安卓手机怎么啦?总是关机不成功,真是让人头疼啊!这可怎么办呢?别急,让我来帮你分析找出解决这...
安卓什么系统广告最多,揭秘最新... 你有没有发现,每次打开安卓手机,广告就像无处不在的小精灵,跳来跳去,让人眼花缭乱?今天,就让我带你一...
禁止中国使用安卓系统,“安卓系... 你知道吗?最近互联网上掀起了一股热议,那就是关于中国是否应该禁止使用安卓系统的话题。这可不是闹着玩的...
如何分辨ios系统和安卓系统,... 你有没有想过,你的手机里装的是iOS系统还是安卓系统呢?这两种系统各有千秋,但分辨它们其实并不难。今...
如何查询安卓系统版本,安卓系统... 你有没有想过,你的安卓手机里隐藏着一个小秘密——那就是它的系统版本!知道这个秘密,不仅能让你更好地了...
lg电视系统和安卓系统比较,性... 你有没有发现,现在家里的电视已经不再是那个傻乎乎的“大盒子”了?它变得聪明起来,能和你互动,能上网,...