Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức Stack.ToArray() trong C#

Giới thiệu

Phương thức Stack.ToArray() trong C# được dùng để sao chép các phần tử của Stack vào một mảng mới (new array). Mảng được tạo có cùng thứ tự phần tử với stack (phần tử ở đỉnh stack sẽ ở chỉ số 0 của mảng).

Cú pháp

public virtual object[] ToArray ();

Ví dụ 1: Stack chuỗi với Stack đồng bộ

using System;
using System.Collections;

public class Demo {
    public static void Main() {
        Stack stack = new Stack();
        stack.Push("Inspiron");
        stack.Push("Alienware");
        stack.Push("Projectors");
        stack.Push("Monitors");
        stack.Push("XPS");
        stack.Push("Laptop");
        stack.Push("Notebook");

        Console.WriteLine("Các phần tử Stack...");
        foreach(string val in stack) {
            Console.WriteLine(val);
        }
        Console.WriteLine("Số lượng phần tử = " + stack.Count);

        stack.Push("Ultrabook");
        stack.Push("Cameras");
        stack.Push("Keyboards");

        Console.WriteLine("\nCác phần tử Stack...đã cập nhật");
        foreach(string val in stack) {
            Console.WriteLine(val);
        }
        Console.WriteLine("\nSố lượng phần tử (đã cập nhật) = " + stack.Count);

        Console.WriteLine("Stack có đồng bộ? = " + stack.IsSynchronized);
        Stack stack2 = Stack.Synchronized(stack);
        Console.WriteLine("Stack2 có đồng bộ? = " + stack2.IsSynchronized);

        Console.WriteLine("\nSao chép Stack sang mảng mới...");
        Object[] objArr = stack2.ToArray();
        foreach(Object ob in objArr) {
            Console.WriteLine(ob);
        }
    }
}

Đầu ra ví dụ 1

Các phần tử Stack...
Notebook
Laptop
XPS
Monitors
Projectors
Alienware
Inspiron
Số lượng phần tử = 7

Các phần tử Stack...đã cập nhật
Keyboards
Cameras
Ultrabook
Notebook
Laptop
XPS
Monitors
Projectors
Alienware
Inspiron
Số lượng phần tử (đã cập nhật) = 10
Stack có đồng bộ? = False
Stack2 có đồng bộ? = True

Sao chép Stack sang mảng mới...
Keyboards
Cameras
Ultrabook
Notebook
Laptop
XPS
Monitors
Projectors
Alienware
Inspiron

Ví dụ 2: Stack số nguyên

using System;
using System.Collections;

public class Demo {
    public static void Main() {
        Stack stack = new Stack();
        stack.Push(150);
        stack.Push(300);
        stack.Push(500);
        stack.Push(750);
        stack.Push(1000);
        stack.Push(1250);
        stack.Push(1500);
        stack.Push(2000);
        stack.Push(2500);

        Console.WriteLine("Các phần tử Stack...");
        foreach(int val in stack) {
            Console.WriteLine(val);
        }
        Console.WriteLine("Số lượng phần tử = " + stack.Count);

        stack.Push(3000);
        stack.Push(3500);
        stack.Push(4000);

        Console.WriteLine("\nCác phần tử Stack...đã cập nhật");
        foreach(int val in stack) {
            Console.WriteLine(val);
        }
        Console.WriteLine("\nSố lượng phần tử (đã cập nhật) = " + stack.Count);

        Console.WriteLine("\nSao chép Stack sang mảng mới...");
        Object[] objArr = stack.ToArray();
        foreach(Object ob in objArr) {
            Console.WriteLine(ob);
        }
        Console.WriteLine("\nSố lượng phần tử trong mảng = " + objArr.Length);
    }
}

Đầu ra ví dụ 2

Các phần tử Stack...
2500
2000
1500
1250
1000
750
500
300
150
Số lượng phần tử = 9

Các phần tử Stack...đã cập nhật
4000
3500
3000
2500
2000
1500
1250
1000
750
500
300
150
Số lượng phần tử (đã cập nhật) = 12

Sao chép Stack sang mảng mới...
4000
3500
3000
2500
2000
1500
1250
1000
750
500
300
150
Số lượng phần tử trong mảng = 12

Đặc điểm quan trọng

  • Mảng trả về là object[], cần ép kiểu khi sử dụng.
  • Thứ tự phần tử trong mảng: phần tử ở đỉnh stack (top) ở chỉ số 0, phần tử đáy ở chỉ số cuối.
  • Stack gốc không bị thay đổi sau khi gọi ToArray().
  • Phương thức này hữu ích khi cần chuyển đổi stack sang mảng để xử lý, sắp xếp hoặc truyền cho API yêu cầu mảng.