美文网首页
C# tuple元组详解

C# tuple元组详解

作者: 程序员ken | 来源:发表于2023-03-17 09:56 被阅读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<T1, T2, T3, T4, T5, T6, T7, TRest>
由上面可以看出 除非是嵌套的元组 ,普通的最多只能有8位元素

如何声明元组变量

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

## 方式二 
Tuple<int, string, double> t2 = new Tuple<int, string, double>(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/

相关文章

  • C#元组的使用

    元组(Tuple)是在C# 4.0时出的新特性,需要.Net Framework 4.0以上版本支持。 元组...

  • python随手记-创建空集合

    创建空列表: list = [] 创建空元组:tuple = () 创建单个元素的元组:tuple_single ...

  • Python基础数据类型——tuple浅析

    Python中tuple的使用 一、什么是元组? 有序列表叫元组:tuple。tuple和list非常类似,但是t...

  • 7.基本数据类型 tuple/list

    元组(tuple) tuple类型就是元组,用圆括号( )表示,不同元素逗号隔开。 ☑一旦初始化赋值,tuple的...

  • Python基础数据类型——tuple浅析

    Python中tuple的使用 一、什么是元组? 有序列表叫元组:tuple。tuple和list非常类似,但是t...

  • 我的python学习笔记-第三天

    基本数据类型 接昨天的内容 Tuple(元组) 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组...

  • day08、元组,字典,集合 2019-01-03

    一、tuple 元组 1.什么是元组(tuple) python提供的容器型数据类型,不可变且有序。(元组就是不可...

  • Day-8 - 字典和集合(2018-10-09)

    一、元组 1.什么是元组 格式:tuple = (元素1, 元素2, ……, 元素n)tuple = 元素1, 元...

  • 元组tuple

    不同的列表---元组tuple 元组与列表最大的区别,元组的内容是无法改变 创建元组方法 >>> a = (1,2...

  • 元组(tuple)

    1.元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号(),列表使用方括号[]...

网友评论

      本文标题:C# tuple元组详解

      本文链接:https://www.haomeiwen.com/subject/xrkjrdtx.html