Quantcast kiểu dữ liệu Tuple trong .net 4.0

kiểu dữ liệu Tuple trong .net 4.0

by Neon Quach 8. July 2011 05:37

.Net 4.0 giới thiệu 1 kiểu dữ liệu mới , kiểu dữ liệu Tuple, Tuple là kiểu dữ liệu tập hợp (typed collection) có kích thước cố định, giống như mãng trước đây, Tuple được giới thiệu cho việc tương tác với F# hoặc Python, ngoài ra nó còn làm cho code ngắn ngọn hơn, hãy xem ví dụ:

.Net Version 3.5 trở xuống

object
[] objs = new object[2]

{

    1, "quachnguyen"

};

Console.WriteLine(objs[0] + " " + objs[1]);


.Net 4
Tuple
<int, string> name = new Tuple<int, string>(1, "quachnguyen");

Console.WriteLine(name.Item1 + " " + name.Item2);


Tuple rất dể dàng khởi tạo:
Tuple
<int, int, int, int, int> MultiplesOfTwo = Tuple.Create(2, 4, 6, 8, 10);


Để truy cập vào phần tử trong Tuple ta dùng thuộc tính Item của Tuple
Console
.WriteLine(MultiplesOfTwo.Item2);


Kiểu dữ liệu Tuple có thể chứa đến 7 thành phần, nếu muốn chứa thêm thành phần vào Tuple, chúng ta truyền kiểu dữ liệu Tuple vào.  Like:

var
multiples = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>

    (2, 4, 6, 8,10, 12, 14, new Tuple<int, int, int>(3, 6, 9));


Nếu muốn truy cập vào kiểu dữ liệu Tuple thứ 2 ta dùng:

Console
.WriteLine(multiples.Rest.Item1);


Tóm lại tại sao phải dùng Tuple? Đơn giản là làm cho nó ngắn gọn và 1 trong những yếu tố quan trong khác là chúng ta không cần phải ép kiểu.

Biên dịch không thành công với đoạn code này:

object
[] objs = new object[2]

{

    1, "quachnguyen"

};

Console.WriteLine(objs[0] + 1 + " " + objs[1]);


Nhưng với Tuple thì okie:
Tuple
<int, string> name = new Tuple<int, string>(1, "quachnguyen");

Console.WriteLine(name.Item1 + 1 +" " + name.Item2);


Hope this help!

Tags: ,


Categories: c#

blog comments powered by Disqus

About me

I'm  currently employed as Software developer at devinition.com and also a Microsoft Certified Technology Specialist (MCTS), Microsoft Certified Professional Developer (MCPD) in Net Framework 2.0 and 3.5: Web Applications and MCTS .NET Framework 3.5, ADO.NET Applications

Powered by BlogEngine.NET 2.5.0.5 - Eco Theme by n3o Web Designers