首页 > 其他分享 >.NET学习系列之元组

.NET学习系列之元组

时间:2023-02-06 00:33:05浏览次数:44  
标签:Console string Item1 元组 WriteLine 系列 NET bob

元组

数组合并了相同类型的对象,而元组合并了不同类型的对象。

Console.WriteLine(bob.Item1); //Bob
Console.WriteLine(bob.Item2); //23
var joe = bob;
joe.Item1 = "Joe";
Console.WriteLine(joe.Item1); //Joe
Console.WriteLine(joe.Item2); //23

使方法可以返回多个不同类型的值

    public class Program
    {
        private static void Main(string[] args)
        {
            (string, int) person = GetPerson();
            Console.WriteLine(person.Item1);
            Console.WriteLine(person.Item2);
        }
        public static (string, int) GetPerson() => ("Bob", 23);
    }

元组元素命名

当创建元组字面量时,可以为元组的元素起一些有意义的名字:

Console.WriteLine(turple.Name); //也可以使用原来的Item1
Console.WriteLine(turple.Age); //也可以使用原来的Item2

如果元组对应的元素类型相同,则元组是类型兼容的。而其元素命名可以不同:
(string Name, int Age, char Sex) bob1 = ("Bob", 23, 'M');
(string Age, int Sex, char Name) bob2 = bob1;
Console.WriteLine(bob2.Item1);//Bob
Console.WriteLine(bob2.Item2);//23
Console.WriteLine(bob2.Item3);//M

元组的解构

元组隐式支持解构模式,因此可以将一个元组解构为独立的变量。

     private static void Main(string[] args)
        {
            var bob = ("Bob", 23);
            
            string name=bob.Item1;
            int age=bob.Item2;
            //也可以写成
            (string name, int age) = bob;
            
            Console.WriteLine(name);
            Console.WriteLine(age);
        }

元组的比较

和匿名类型一样,ValueTuple<>类型重写了Equals方法,来恰当地支持元组间的比较:

var t1 = ("one", 1);
var t2 = ("one", 1);
Console.WriteLine(t1.Equals(t2)); //True

标签:Console,string,Item1,元组,WriteLine,系列,NET,bob
From: https://www.cnblogs.com/FaceMan/p/17094260.html

相关文章