C# Tutorial

C# Tutorial C# First Application C# Variables C# Data Types C# Operators C# Keywords

C# Control Statement

C# If Statements C# Switch Statements C# for Loop C# While Loop C# do While loop C# Jump Statements C# Function C# functions with out variable

C# Arrays

C# Arrays

C# Function

C# Function call by value C# Call by reference C# Passing array to function C# Multidimensional Arrays C# Jagged Arrays C# Params C# Array Class C# Command Line Arguments

C# Object Class

C# Object and Classes C# Constructors C# Destructor C# this Keyword C# static field C# static class C# Static Constructor C# Structs C# enum C# Properties

C# Inheritance

C# Inheritance C# Multilevel Inheritance C# Aggregation C# Member overloading C# Method Overriding C# Base

C# Polymorphism

C# Polymorphism C# Sealed

C# Abstraction

C# Abstraction C# Interface

C# Namespace

C# Namespace C# Access Modifiers C# Encapsulation

C# Strings

C# String

C# Misc

C# Design Patterns Dictionary in C# Boxing and Unboxing in C# Ref and Out in C# Serialization in C# Dispose and Finalize in C# CONSOLE LOG IN C# Get File extension in C# Insert query in c# Difference Between List and Dictionary in C# Getters and Setters in C# Extension Methods in C# Insert query in c# CONSOLE LOG IN C# Get File extension in C# Random.NextDouble() Method in C# Binary Search in C# Difference between Delegates and Interfaces in C# Double.IsFinite() Method in C# Index Constructor in C# Abstraction in C# Basic OOPS Concepts In C# Queue.CopyTo() Method in C# single.compareto() method in C# C# Throw Exception in Constructor DECODE IN C# file.setlastwritetimeutc() method in C# Convert Object to List in C# convert.ToSByte(string, IFormatProvider) Method in C# C# Declare Delegate in Interface console.TreatControl C As Input property in C# Copying the queue elements to 1-D Array in C# Array.Constrainedcopy() Method in C# C# in and out Char.IsLetterOrDigit() method in C# Debugging in C# decimal.compare() method in C# Difference between Console.Read and Console.Readline in C# Metadata in C# C# Event Handler Example Default Interface Methods in C# Difference between hashtable and dictionary in C# C# program to implement IDisposable Interface Encapsulation in C# SortedList.IndexOfVaalue(Object) Method in C# Hash Maps in C# How to clear text files in C# How to Convert xls to xlsx in C# Foreach loop in C# FIFO in C# How to handle null exception in C# Type.Is Instance Of Type() Method in C# How to add data into MySQL database using C# How to use angular js in ASP net Csharp decimal.compare() method in Csharp Difference between Console.Read and Console.Readline in Csharp How to Implement Interface in Csharp char.IsUpper() Method in C# Index Of Any() Method in C# Quantifiers in C# C# program to Get Extension of a Given File C# Error Logging C# ENCRIPTION Can we create an object for Abstract Class in C# Console.CursorVisible in C# SortedDictionary Implementation in C# C# Hash Table with Examples Setting the Location of the Label in c# Collections in c# Virtual Keyword in C# Reverse of string in C# String and StringBuilder in C# Encapsulation in C# SortedList.IndexOfVaalue(Object) Method in C# Hash Maps in C# How to clear text files in C# How to Convert xls to xlsx in C# Foreach loop in C# FIFO in C# How to handle null exception in C# Type.Is Instance Of Type() Method in C# How to add data into MySQL database using C# How to use angular js in ASP net Csharp decimal.compare() method in Csharp Difference between Console.Read and Console.Readline in Csharp How to Implement Interface in Csharp char.IsUpper() Method in C# Index Of Any() Method in C# Quantifiers in C# C# program to Get Extension of a Given File Difference between ref and out in C# Singleton Class in C# Const And Readonly In Csharp BinaryReader and BinaryWriter in C# C# Attributes C# Delegates DirectoryInfo Class in C# Export and Import Excel Data in C# File Class in C# FileInfo Class in C# How to Cancel Parallel Operations in C#? Maximum Degree of Parallelism in C# Parallel Foreach Loop in C# Parallel Invoke in C# StreamReader and StreamWriter in C# TextReader and TextWriter in C# AsQueryable() in C# Basic Database Operations Using C# C# Anonymous Methods C# Events C# Generics C# Indexers C# Multidimensional Indexers C# Multithreading C# New Features C# Overloading of Indexers Difference between delegates and events in C# Operator overloading in C# Filter table in C# C# Queue with Examples C# Sortedlist With Examples C# Stack with Examples C# Unsafe Code File Handling in C# HashSet in C# with Examples List Implementation in C# SortedSet in C# with Examples C# in Depth Delegates and Events in C# Finally Block in C# How to Split String in C# Loggers in C# Nullable Types in C# REVERSE A STRING IN C# TYPE CASTING IN C# What is Generics in C# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# Atomic Methods Thread Safety and Race Conditions in C# Parallel LINQ in C# Design Principles in C# Difference Between Struct And Class In C# Difference between Abstraction and Encapsulation in C# Escape Sequence Characters in C# What is IOC in C# Multiple Catch blocks in C# Appdomain in C# Call back methods in C# Change Datetime format in C# Declare String array in C# Default Access Specifier in c# Foreach in LINQ C# How to compare two lists in C# How to Convert String to Datetime in c# How to get only Date from DateTime in C# Ispostback in asp net C# JSON OBJECT IN C# JSON STRINGIFY IN C# LAMBDA FUNCTION IN C# LINQ Lambda Expression in C# Microservices in C# MSIL IN C# Reference parameter in C# Shadowing(Method hiding) in C# Solid principles in C# Static Members in C# Task run in C# Transaction scope in C# Type Conversion in c# Unit of Work in C# Unit Test Cases in c# User Defined Exception in c# Using Keyword in C# Var Keyword in C# What is gac in C#

Copying the queue elements to 1-D Array in C#

In this article, we will discuss the Queue<T>.CopyTo(T[], Int32) method in C# with its syntax, parameters, exceptions, and examples.

What is the Queue<T>.CopyTo(T[], Int32) Method?

Queue<T> is used to copy queue elements to an existing 1-D array, starting at a specified array index, using the CopyTo(T[], Int32) method. This copyto() method is O(n) in nature, where n is the count, and the elements are transferred to the Array in the same order that the enumerator proceeds via the Queue. This method is located in the System.Collections.Generic namespace.

Syntax:

It has the following syntax:

public void CopyTo (T[] array, int arrayIndex);

Parameters:

  • array: The elements that have been copied from Queue<T> end up in this one-dimensional array. The array has to be indexable using zeros.
  • arrayIndex: It is the point in the array where copying starts based on a zero basis.

Exceptions:

  • ArgumentNullException: If occurs when an array is empty.
  • ArgumentOutOfRangeException: It occurs when the index is not zero.
  • ArgumentException: When there are more elements in the source Queue<T>, there is space available from arrayIndex to the destination array's end.

Example:

Let us take an example to illustrate the Queue<T>.CopyTo(T[], Int32) method in C#.

using System;

using System.Collections;

class Program

{

    static void Main()

    {

        // Creating a queue

        Queue myQueue = new Queue();

        // Adding elements to the queue

        myQueue.Enqueue("Apple");

        myQueue.Enqueue("Banana");

        myQueue.Enqueue("Orange");

        myQueue.Enqueue("Grapes");

        // Copying queue elements to a 1-D array

        string[] array = new string[myQueue.Count];

        myQueue.CopyTo(array, 0);

        // Displaying the original queue

        Console.WriteLine("Original Queue:");

        foreach (var item in myQueue)

        {

            Console.Write(item + " ");

        }

        // Displaying the copied array

        Console.WriteLine("\nCopied 1-D Array:");

        foreach (var item in array)

        {

            Console.Write(item + " ");

        }

    }

}

Output:

Original Queue:

Apple Banana Orange Grapes

Copied 1-D Array:

Apple Banana Orange Grapes

Explanation:

In this example, the steps involve creating a queue of strings and using the CopyTo method to copy the elements to a 1-D array of strings. The CopyTo function copies the queue's elements to the designated array utilizing an index as a starting point. After that, the copied array is shown, along with the original queue.

Example 2:

Let us take another example to illustrate the queue.CopyTo() method in C#.

using System;

using System.Collections.Generic;

class Program

{

    // Driver code for the program

    public static void Main()

    {

        // Creating a Queue of integers

        Queue<int> myQueue = new Queue<int>();

        // Adding elements to Queue

        myQueue.Enqueue(10);

        myQueue.Enqueue(20);

        myQueue.Enqueue(30);

        myQueue.Enqueue(40);

        // Creates and initializes the

        // one-dimensional target Array.

        int[] targetArray = new int[8];

        // Adding elements to targetArray

        targetArray[0] = 5;

        targetArray[1] = 15;

        targetArray[2] = 25;

        targetArray[3] = 35;

        targetArray[4] = 45;

        targetArray[5] = 55;

        targetArray[6] = 65;

        targetArray[7] = 75;

        Console.WriteLine("Before Method:");

        Console.WriteLine("\nQueue Contains:");

        foreach (var item in myQueue)

        {

            Console.WriteLine(item);

        }

        Console.WriteLine("\nArray Contains:");

        for (int i = 0; i < targetArray.Length; i++)

        {

            Console.WriteLine($"targetArray[{i}] : {targetArray[i]}");

        }

        Console.WriteLine("After Method:");

        // Copying the entire source Queue to the target Array starting at index 3.

        myQueue.CopyTo(targetArray, 3);

        Console.WriteLine("\nQueue Contains:");

        foreach (var item in myQueue)

        {

            Console.WriteLine(item);

        }

        Console.WriteLine("\nArray Contains:");

        for (int i = 0; i < targetArray.Length; i++)

        {

            Console.WriteLine($"targetArray[{i}] : {targetArray[i]}");

        }

    }

}

Output:

Before Method:

Queue Contains:

10

20

30

40

Array Contains:

targetArray[0] : 5

targetArray[1] : 15

targetArray[2] : 25

targetArray[3] : 35

targetArray[4] : 45

targetArray[5] : 55

targetArray[6] : 65

targetArray[7] : 75

After Method:

Queue Contains:

10

20

30

40

Array Contains:

targetArray[0] : 5

targetArray[1] : 15

targetArray[2] : 25

targetArray[3] : 10

targetArray[4] : 20

targetArray[5] : 30

targetArray[6] : 40

targetArray[7] : 75

Example 3:

Let us take another example to illustrate the queue.CopyTo() method in C#.

using System;

using System.Collections.Generic;

public class Demo

{

    public static void Main()

    {

        // Creating a Queue of integers

        Queue<int> myQueue = new Queue<int>();

        myQueue.Enqueue(42);

        myQueue.Enqueue(99);

        // Creating an array of integers

        int[] intArray = new int[5];

        intArray[0] = 10;

        intArray[1] = 20;

        intArray[2] = 30;

        intArray[3] = 40;

        intArray[4] = 50;

        Console.WriteLine("Original Array Elements:");

        for (int i = 0; i < intArray.Length; i++)

        {

            Console.WriteLine(intArray[i]);

        }

        // Copying queue elements to the array starting at index 1

        myQueue.CopyTo(intArray, 1);

        Console.WriteLine("\nAfter Copying, Array Contains:");

        for (int i = 0; i < intArray.Length; i++)

        {

            Console.WriteLine("intArray[{0}] : {1}", i, intArray[i]);

        }

    }

}

Output:

Original Array Elements:

10

20

30

40

50

After Copying, Array Contains:

intArray[0] : 10

intArray[1] : 42

intArray[2] : 99

intArray[3] : 40

intArray[4] : 50

Conclusion:

In conclusion, copying elements from a C# Queue to a 1-D array is a useful and efficient way to combine data from both structures. Using the CopyTo method, we can easily transfer data and specify the starting index in the target array. This operation preserves the initial elements in the array by inserting the queue elements at the specified location. The output array is a well-balanced selection of elements from both the queue and the original array, offering a practical way to organize and modify data in C# applications.