Exemple #1
0
        static void Main(string[] args)
        {
            #region Fundamentos
            Pessoa p1;
            p1.nome  = "ola1";
            p1.idade = 10;

            Pessoa p2;
            p2.nome  = "ola2";
            p2.idade = 11;

            Pessoa p3;
            p3.nome  = "ola3";
            p3.idade = 10;

            Pessoa[] novo = new Pessoa[20];
            novo[0] = p1;
            //novo[0] = "ola";      //é possível?

            string[] nomes = new string[] { "ola", "ole" };
            #endregion

            #region ArrayList
            ArrayList aux = new ArrayList();

            aux.Add("luis");
            aux.Add("luis");
            aux.Add(12);
            aux.Add(nomes);
            //aux.AddRange(nomes);//adiciona elementos no final do ArrayList
            aux.Add("benfica");
            aux.Add(p2);
            aux.Add(p1);

            Console.WriteLine("Size= " + aux.Count);
            aux.Remove("luis");
            Console.WriteLine("Index: " + aux.IndexOf(p1).ToString());
            Console.WriteLine("Existe Benfica: " + aux.Contains("benfica"));

            //mostrar arrayList
            for (int i = 0; i < aux.Count; i++)
            {
                if (aux[i].GetType() == typeof(Pessoa))
                {
                    Pessoa p = (Pessoa)aux[i];
                    Console.WriteLine("{0} - {1}\n", p.nome, p.idade);
                }
                else
                {
                    Console.WriteLine(aux[i].ToString());
                }
            }

            //acrecsenta a Queue ao ArrayList
            //aux.AddRange(myQueue);

            ShowII(aux, '\n');

            #endregion

            #region Queues

            // Declaring a Queue
            Queue q = new Queue();
            // Adds an element at the end of Queue i.e. Enqueue operation
            q.Enqueue("Pankaj");
            q.Enqueue(1);
            q.Enqueue(10.5);
            q.Enqueue(true);
            q.Enqueue('A');
            q.Enqueue("Benfica");
            q.Enqueue("Portinho");
            q.Enqueue("Braguinha");
            q.Enqueue(6000000);
            q.Enqueue("Tadinhos!!!");
            //Get the number of elements present in the Queue
            Console.WriteLine("Count : {0}", q.Count);
            Console.WriteLine();
            //Printing all the element of Queue
            Console.WriteLine("Elements in Queue : ");
            foreach (object obj in q)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine();
            //Exploe ShowII
            //Returns the "next" of the Queue without removing
            Console.WriteLine("End element of Queue : {0}", q.Peek());
            Console.WriteLine();
            //Removes and Returns the end element of the Queue i.e. Dequeue operation
            object TopElement = q.Dequeue();
            Console.WriteLine("Removing End element of Queue = {0}\nNow End element of Queue = {1}\n", TopElement, q.Peek());
            //Determines whether an element present or not in the Queue
            if (q.Contains("Benfica"))
            {
                Console.WriteLine("O Glorioso!");
            }
            else
            {
                Console.WriteLine("Não é clube...");
            }
            //Copies all queue to a new Array(object)
            Object[] ob = q.ToArray();
            Console.WriteLine();
            foreach (object obj in ob)
            {
                Console.WriteLine(obj);
            }
            //Adjust queue size...Trim the Queue
            q.TrimToSize();

            //More...
            ShowII(q, '\n');
            Console.WriteLine("(Peek)   \t{0}", q.Peek());
            Console.WriteLine("(Dequeue)\t{0}", q.Dequeue());
            ShowII(q, '\n');
            //Removes all the element from Queue
            q.Clear();
            Console.WriteLine();
            Console.WriteLine("Count : {0}", q.Count);
            Console.ReadKey();

            #endregion

            #region Stacks
            // Declaring a stack
            Stack st = new Stack();
            // Inserting an element at the top of stack i.e. Push operation
            st.Push("Benfica");
            st.Push(1);
            st.Push(10.5);
            st.Push(true);
            st.Push('A');
            //Get the number of elements contained in the stack
            Console.WriteLine("Count : {0}", st.Count);
            Console.WriteLine();
            //Printing all the element of stack
            Console.WriteLine("Element in stack : ");
            foreach (object obj in st)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine();
            //Returns the topmost element of the stack without removing
            Console.WriteLine("Top most element of stack : {0}", st.Peek());
            Console.WriteLine();
            //Removes and Returns the topmost element of the stack i.e. Pop operation
            Object TopElement1 = st.Pop();
            Console.WriteLine("Removing Top element of Stack = {0}\nNow Top element of stack = {1}\n", TopElement1, st.Peek());
            //Determines whether an element present or not in the stack
            if (st.Contains("Benfica"))
            {
                Console.WriteLine("O maior");
            }
            else
            {
                Console.WriteLine("Que clube estranho...");
            }
            //Copies the stack to a new Array(object)
            Object[] ob1 = st.ToArray();
            Console.WriteLine();
            foreach (object obj in ob1)
            {
                Console.WriteLine(obj);
            }
            //Removes all the element from stack
            st.Clear();
            Console.WriteLine();
            Console.WriteLine("Count : {0}", st.Count);
            Console.ReadKey();
            #endregion

            #region OrdenarCollections

            ArrayList n = new ArrayList();
            n.Add(12);
            n.Add(24);
            n.Add(7);
            n.Sort();

            n.Add("ola");

            //n.Add(new Pessoa());

            Console.WriteLine("Antes de Ordenar");
            Show(n);
            //n.Sort();                    //comparar do mesmo tipo...OK!


            Console.ReadKey();
            //n.Sort();                // Porque falha?
            n.Sort(new MyComparer(SortDirecc.Asc));

            Console.WriteLine("Depois de Ordenar");
            Show(n);

            Console.ReadKey();
            //#endregion

            #endregion

            #region Ordenar MyArrayList

            //MyArrayList m = new MyArrayList();
            MyArrayList m = new MyArrayList(2);         //Capacidade multiplos de 2


            //m.MyArr.Add("ola");
            m.MyArr.Add(p1);
            m.MyArr.Add(p2);
            m.MyArr.Add(p1);                            //A Capacidade (capacity) duplica sempre que se esgota a reservada inicialmente

            //m.MyArr.Sort(

            m.MyArr.Insert(0, p3);                      //Insere na posição 0...shift rigth das existentes
            m.MyArr.Remove(p1);
            m.MyArr.Add(p1);
            //m.MyArr.Remove(p1);

            //Antes de ordenar
            m.ShowCollection();


            m.MyArr.Sort(new MyComparer());             //para ordenar é necessário um "IComparer
            //depois de ordenar
            m.ShowCollection();

            Console.WriteLine("Existe P1? " + m.MyArr.Contains(p1).ToString());
            Console.WriteLine("Em que posição está P2?" + m.MyArr.IndexOf(p2).ToString());

            Console.WriteLine("Capacidade: " + m.MyArr.Capacity.ToString());
            Console.WriteLine("Elementos: " + m.MyArr.Count.ToString());

            Console.WriteLine(m.ShowCollectionAdvanced().ToString());
            #endregion

            #region Hashtable I

            Hashtable ht = new Hashtable();
            //inicializar
            //Hashtable ht = new Hashtable() { { 1, 2 }, { 2, "ok" } };

            //Adding item into HashTable
            ht.Add(1, "Benfica");
            ht.Add(12, "Porto");
            ht.Add(8, "Braga");
            ht.Add(4, "Outro");
            Console.WriteLine("Count : {0}", ht.Count);
            if (ht.ContainsValue("Benfica"))
            {
                Console.WriteLine("Benfica existe na HashTable");
            }
            else
            {
                ht.Add(5, "Benfica");
            }

            //Get a collection of values
            Console.WriteLine("Valores :");
            ICollection values = ht.Values;
            foreach (string str in values)
            {
                Console.WriteLine(str);
            }

            //Get a collection of Keys
            Console.WriteLine("Chaves:");
            ICollection keys = ht.Keys;
            foreach (int i in keys)
            {
                Console.WriteLine("Key: " + i + " Value: " + ht[i]);
            }
            ;
            ht.Remove(3);
            ht.Clear();

            // Put keys in an ArrayList.
            ArrayList arrayList = new ArrayList(ht.Keys);
            foreach (int key in arrayList)
            {
                Console.WriteLine(key);
            }
            Console.ReadKey();
            #endregion

            #region HashTable II
            MyHashTable h = new MyHashTable();

            //h.MyHash.Add(p1.nome, p1);
            //h.MyHash.Add(p2.nome, p2);

            //Console.WriteLine(((Pessoa)(h.MyHash[p1.nome])).nome);

            //Console.WriteLine("Contem chave ? " + h.MyHash.ContainsKey(p3.nome));
            //Console.WriteLine("Número de chaves ? " + h.MyHash.Count.ToString());

            //h.MyHash.Clear()                //limpa hash

            Console.WriteLine(h.ShowHash());

            Console.WriteLine(h.MyGetHashCode(p1.nome, 50));
            Console.WriteLine(h.MyGetHashCode(p2.nome, 50));
            Console.WriteLine(h.MyGetHashCode(p3.nome, 50));

            h.MyInsert(p1);
            h.MyInsert(p2);
            h.MyInsert(p3);
            h.MyInsert(p1);         //colisão!

            #endregion

            #region Arrays

            Array a = Array.CreateInstance(typeof(string), 20);

            a.SetValue("Benfica", 0);
            a.SetValue("Porto", 1);

            string s1 = (string)a.GetValue(0);

            #endregion

            #region SortedList

            Console.WriteLine("\nSortedList\n");
            SortedList sl = new SortedList();

            sl.Add(1, "Benfica");
            sl.Add(3, "Porto");
            sl.Add(4, "Braguinha");
            sl.Add(2, "Sporting");

            Console.WriteLine("Número de Elementos : {0}", sl.Count);
            if (sl.ContainsValue("Benfica"))
            {
                Console.WriteLine("Benfica é o maior");
            }
            else
            {
                sl.Add(1, "Benfica");
            }
            Console.WriteLine("Valor e chave na posição 3 = {0} , {1}", sl.GetByIndex(3), sl.GetKey(3));

            //Percorre a SortedList...mostra todas as chaves
            Console.Write("Chaves: ");
            foreach (int i in sl.Keys)
            {
                Console.Write(i + " ");
            }


            //Agrupa pares (k,v)
            IList keys1   = sl.GetKeyList();
            IList values1 = sl.GetValueList();
            Console.WriteLine("\nValores :");
            foreach (object obj in values1)
            {
                Console.WriteLine(obj);
            }
            //Or
            Console.WriteLine("\nChaves: Valores :");
            foreach (object obj in keys1)
            {
                Console.WriteLine("Chave: " + obj + " Valor: " + sl[obj]);
            }

            Console.WriteLine("Index do Porto é : {0}", sl.IndexOfValue("Porto"));

            //Mostra todos os pares (k,v)

            foreach (object obj in keys1)
            {
                Console.WriteLine("Key: {0} - Valor: {1}\n", obj, sl[obj]);
            }


            //Remover
            //remove elemento com chave 3
            sl.Remove(3);
            // Remove um elemento num determinado index
            sl.RemoveAt(2); //?

            Console.ReadKey();

            #endregion


            #region Carros

            ArrayList carros = new ArrayList();

            carros.Add(new Carro("19-12-12"));
            carros.Add(new Carro("12-12-13"));
            carros.Add(new Carro("13-12-12"));

            foreach (Carro c in carros)
            {
                Console.WriteLine("Mat= " + c.matricula);
            }

            carros.Sort(new MyComparer());

            foreach (Carro c in carros)
            {
                Console.WriteLine("Mat= " + c.matricula);
            }

            #endregion
        }
Exemple #2
0
        static void Main(string[] args)
        {
            int    a = 10;
            string b = "Hello";
            float  c = 2.32f;
            char   d = 'd';
            bool   e = true;

            int[] f = new int[6] {
                1, 2, 3, 4, 5, 6
            };
            ArrayList Array1 = new ArrayList();
            ArrayList Array2 = new ArrayList()
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10
            };

            Array1.Add(a);
            Array1.Add(b);
            Array1.Add(c);
            Array1.Add(d);
            Array1.Add(e);
            Array1.Add(f);
            Array1.Add("bcd");

            var dcd = Array1[6];     //Just for the sake of explicit typecasting

            Array1.Insert(0, a * 2); //inserting value a*2 at 0 index
            //by inserting every value will be pushed forward to the next location.

            Array1.AddRange(Array2);//adding another array list at the end of the first array list

            for (int i = 0; i < Array1.Count; i++)
            {
                Console.WriteLine("Value from {0} index ", i);
                Console.WriteLine(Array1[i]);
            }
            Console.WriteLine("\n Ended The array List Now moving towards next Collection \n\n\n");


            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


            //Code for Sorted List (Non generic)
            Console.WriteLine("From Sorted List Nongeneric");
            int        j       = 0;
            SortedList myNames = new SortedList();

            myNames.Add(j, a);
            j++;
            myNames.Add(j, b);
            j++;
            myNames.Add(j, c);
            j++;
            myNames.Add(j, d);
            j++;
            myNames.Add(j, e);
            j++;
            myNames.Add(j, f);
            j++;

            Console.WriteLine("Before removing an element");
            foreach (DictionaryEntry variable in myNames)
            {
                Console.WriteLine("{0} {1}", variable.Key, variable.Value);
            }

            myNames.RemoveAt(0);
            Console.WriteLine("After removing an element");
            foreach (DictionaryEntry variable in myNames)
            {
                Console.WriteLine("{0} {1}", variable.Key, variable.Value);
            }



            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            //Code for Sorted List (Generic)
            Console.WriteLine("\n\n\n From Sorted List Generic");
            j = 0;
            SortedList <int, string> myNames1 = new SortedList <int, string>();

            myNames1.Add(j, "a");
            j++;
            myNames1.Add(j, "b");
            j++;
            myNames1.Add(j, "c");
            j++;
            myNames1.Add(j, "d");
            j++;
            myNames1.Add(j, "e");
            j++;
            myNames1.Add(j, "f");
            j++;

            myNames1.Remove(1);
            foreach (var variable in myNames1)
            {
                Console.WriteLine("The value against key {0} is {1}", variable.Key, variable.Value);
            }

            Console.WriteLine("\n\n\n Using KeyValuePair Property");

            foreach (KeyValuePair <int, string> obj in myNames1)
            {
                Console.WriteLine("{0} {1}", obj.Key, obj.Value);
            }
            string result;

            if (myNames1.TryGetValue(2, out result))
            {
                Console.WriteLine("true {0}", result);
            }
            //Console.WriteLine(myNames1[0]);



            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            //Code for Dictionary implementation starts here
            Console.WriteLine("\n\n\n From Dictionary");

            Dictionary <char, string> dict = new Dictionary <char, string>();

            dict.Add('a', "Ali");
            dict.Add('b', "Batman");
            dict.Add('c', "Cat");
            dict.Add('d', "Dog");
            dict.Add('e', "Elephant");
            dict.Add('f', "Frog");
            foreach (Object obj in dict)
            {
                Console.WriteLine(obj);
            }

            dict.Add('g', "Goose");
            dict.Remove('a');

            Console.WriteLine("\n\n From Dictionary Generic Printing Count of objects");
            Console.WriteLine(dict.Count);

            Console.WriteLine("\n\n\n From Dictionary Generic using Object");
            foreach (Object obj in dict)
            {
                Console.WriteLine(obj);
            }
            Console.WriteLine("\n\n\n From Dictionary Generic using KeyValuePair");
            foreach (KeyValuePair <char, string> obj in dict)
            {
                Console.WriteLine("{0} {1}", obj.Key, obj.Value);
            }



            //Code for HashTable implementation starts here
            Console.WriteLine("\n\n\n From Hashtable");

            Hashtable hash = new Hashtable();

            hash.Add(1, a);
            hash.Add('a', b);
            hash.Add('b', b);
            hash.Add('d', b);
            foreach (DictionaryEntry obj in hash)
            {
                Console.WriteLine("{0} {1}", obj.Key, obj.Value);
            }
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


            //Code for List implementation starts here
            Console.WriteLine("\n\n\n From List generic");

            List <int> myList = new List <int>();

            myList.Add(1);
            myList.Add(21);
            myList.Add(2);
            myList.Add(0);
            myList.Sort();
            for (int i = 0; i < myList.Count; i++)
            {
                Console.WriteLine(myList[i]);
            }
            myList.RemoveAt(0);
            myList.Insert(0, 20);
            myList.Sort();
            for (int i = 0; i < myList.Count; i++)
            {
                Console.WriteLine(myList[i]);
            }


            List <ArrayList> myCollector = new List <ArrayList>();

            myCollector.Add(Array1);
            myCollector.Add(Array2);
            Console.WriteLine("\n\n" + myCollector[0].ToArray().Length);


            //Adding dummy student data into the list of students


            int                age;
            float              cgpa;
            string             name;
            string             email;
            string             address;
            string             contactNumber;
            List <StudentInfo> myClass = new List <StudentInfo>();
            StudentInfo        bacs    = new StudentInfo();

            myClass.Add(bacs);
            myClass.Add(bacs);
            for (int i = 0; i < 0; i++)
            {
                Console.WriteLine("Write the age of {0} student", i + 1);
                age = int.Parse(Console.ReadLine());
                Console.WriteLine("Write the cgpa of {0} student", i + 1);
                cgpa = float.Parse(Console.ReadLine());
                Console.WriteLine("Write the name of {0} student", i + 1);
                name = Console.ReadLine();
                Console.WriteLine("Write the email of {0} student", i + 1);
                email = Console.ReadLine();
                Console.WriteLine("Write the address of {0} student", i + 1);
                address = Console.ReadLine();
                Console.WriteLine("Write the contactNumber of {0} student", i + 1);
                contactNumber = Console.ReadLine();

                myClass.Add(new StudentInfo(age, cgpa, name, email, address, contactNumber));
            }
            foreach (StudentInfo s in myClass)
            {
                if (s.AGE >= 18)
                {
                    Console.WriteLine("The student details are as follow");
                    Console.WriteLine("The Name of the student is {0}", s.NAME);
                    Console.WriteLine("The Age of the student is {0}", s.AGE);
                    Console.WriteLine("The Cgpa of the student is {0}", s.CGPA);
                    Console.WriteLine("The Email of the student is {0}", s.EMAIL);
                    Console.WriteLine("The Address of the student is {0}", s.ADDRESS);
                    Console.WriteLine("The Contact Number of the student is {0}", s.CONTACTNUMBER);
                }
            }
            var results = from StudentInfo in myClass
                          where StudentInfo.AGE >= 12
                          select StudentInfo;

            Console.WriteLine("Student with age greater then 12 are as follow");

            foreach (StudentInfo s in results)
            {
                Console.WriteLine(s.AGE);
            }

            /*
             * myClass.Select(x=>new object { name=x.Total})
             *
             * var results = from s in myClass
             *            select s;
             *
             * foreach(StudentInfo info in myClass)
             *  {
             * Console.WriteLine(results[0]);*/


            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ///


            //Code for Stack implementation starts here
            Console.WriteLine("\n\n\n Implementation of Stack starts from here \n");
            Stack <int> myStack = new Stack <int>(f);


            Console.WriteLine("\nStack after entering values using array \n");
            foreach (int variable in myStack)
            {
                Console.Write(variable + ",");
            }
            Console.WriteLine();


            Console.WriteLine("\nStack after entering Value using push \n");
            myStack.Push(20);
            foreach (int variable in myStack)
            {
                Console.Write(variable + ",");
            }


            Console.WriteLine("\nStack after Peeking from it \n");
            Console.WriteLine(myStack.Peek());
            foreach (int variable in myStack)
            {
                Console.Write(variable + ",");
            }


            Console.WriteLine("\nStack after popping element from it \n");
            Console.WriteLine(myStack.Pop());
            foreach (int variable in myStack)
            {
                Console.Write(variable + ",");
            }
            Console.WriteLine();
            int check = 24;

            if (myStack.Contains(check))
            {
                Console.WriteLine("true the stack contains the value {0}", check);
            }
            else
            {
                Console.WriteLine("False the stack doesnot contains the value {0}", check);
            }


            //Iplementation of queue starts from here
            Queue <int> myQueue = new Queue <int>(f);

            Console.WriteLine("\nQueue after entering values from array");
            foreach (int variable in myQueue)
            {
                Console.Write(variable + ",");
            }

            myQueue.Enqueue(20);
            Console.WriteLine("\n\nQueue after using enqueue");
            foreach (int variable in myQueue)
            {
                Console.Write(variable + ",");
            }



            Console.WriteLine("\n\nQueue after Dequeue method");
            Console.WriteLine("The value returned from the dequeue method is " + myQueue.Dequeue());
            foreach (int variable in myQueue)
            {
                Console.Write(variable + ",");
            }


            Console.WriteLine("\n\nPrinting the count of elements in the queue \n" + myQueue.Count());

            Console.WriteLine("\nQueue after Peeking from it");
            Console.WriteLine("Value returned from peek method is " + myQueue.Peek());
            foreach (int variable in myQueue)
            {
                Console.Write(variable + ",");
            }

            Console.WriteLine();

            ///////////////////////////////////////////////////////////////
            //////////////////////////////////////////////////////////////
            ///////////////////////////////////////////////////////////////
            //File Hanlding
            string path1 = @"C:\Users\Lenovo\source\repos\Collections\Collections\bin\Debug\netcoreapp3.1/DummyData1.txt";
            string path2 = @"C:\Users\Lenovo\source\repos\Collections\Collections\bin\Debug\netcoreapp3.1/DummyData2.txt";
            string path3 = @"C:\Users\Lenovo\source\repos\Collections\Collections\bin\Debug\netcoreapp3.1/DummyData3.txt";

            string Abc  = "Hello from the file1";
            string Abcd = "Hello from the file2";

            /*File.WriteAllText(path1,Abc);
             * File.WriteAllText(path2, Abcd);
             */
            string DataRead = File.ReadAllText(path1);

            Console.WriteLine(DataRead);

            //This block is used to to auto close the file after the use
            //the file will open at the start of the using block and
            //At the end of the block the file is automatically closed.

            /*using (StreamWriter sw = File.AppendText(path1))
             * {
             *  sw.WriteLine("\nHello once again using Stream Writer");
             * }
             *
             * using (StreamReader sr = File.OpenText(path2))
             * {
             *  string readed = "";
             *  while ((readed = sr.ReadLine()) != null)
             *  {
             *      Console.WriteLine(readed);
             *  }
             * } */

            DataRead = File.ReadAllText(path1);
            Console.WriteLine("\n\n" + DataRead + "\n\n");

            DataRead = File.ReadAllText(path2);
            Console.WriteLine("\n\n" + DataRead + "\n\n");


            /*FileStream file = new FileStream(path3, FileMode.OpenOrCreate , FileAccess.ReadWrite);
             * //file.Write("Hello")
             * file.WriteByte(66);
             * file.Close();
             */
            using (FileStream file1 = new FileStream(path3, FileMode.Append, FileAccess.Write))
            {
                using (StreamWriter sw = new StreamWriter(file1, Encoding.UTF8))
                {
                    int[] arrays = new int[10] {
                        1, 2, 3, 4, 5, 6, 7, 8, 9, 10
                    };
                    foreach (int num in arrays)
                    {
                        sw.Write(num + " ");
                    }

                    sw.WriteLine("\nHelpppp");
                }
            }


            using (FileStream file1 = new FileStream(path3, FileMode.Open, FileAccess.Read))
            {
                using (StreamReader sr = new StreamReader(file1))
                {
                    string line = sr.ReadLine();
                    while (line != null)
                    {
                        Console.WriteLine(line);
                        line = sr.ReadLine();
                    }
                }
            }



            //Exception Handling Code
            int[] except = new int[3] {
                1, 2, 3
            };
            try
            {
                Console.WriteLine(except[10]);
            }
            catch (Exception error)
            {
                Console.WriteLine(error.Message);
            }
            finally
            {
                Console.WriteLine("The try catch Block has ended");
            }

            /*using (FileStream fs = new FileStream(path1, FileMode.Open, FileAccess.Read))
             * {
             *  using(StreamWriter stw = new StreamWriter(fs))
             *  {
             *
             *  }
             *
             *  using(StreamReader str = new StreamReader(fs))
             *  {
             *
             *  }
             *
             * }*/



            //Manipulating the tuples in the form of an array
            Tuple <int, float, double, char, string>[] studentTuples = new Tuple <int, float, double, char, string> [2];

/*            Tuple<int, float, double, char, string>[] studentFiltered = new Tuple< int, float, double, char, string>[2];
 */
            for (int i = 0; i < 2; i++)
            {
                studentTuples[i] = new Tuple <int, float, double, char, string>(1, 2.2f, 3.3, 'a', "abcd");
            }

            /*int iterator=0;*/
            foreach (Tuple <int, float, double, char, string> tp in studentTuples)
            {
                /*if (tp.Item5.Length >= 3)
                 * {
                 *  studentFiltered[iterator] = tp;
                 *  iterator++;
                 * }*/
                Console.Write(tp.Item1 + " , ");
                Console.Write(tp.Item2 + " , ");
                Console.Write(tp.Item3 + " , ");
                Console.Write(tp.Item4 + " , ");
                Console.WriteLine(tp.Item5);
            }
            //var v1 = new Tuple.Create(1,2);



            //Manilulating with the string array using LINQ queries
            string[] myNamesArray = new string[22] {
                "Ali", "Yar", "Wamik", "Afaq", "Salal", "Daniel", "June", "Juliet",
                "danyyal", "Yousuf", "Bukht", "Yar", "Arshad", "Kainat", "aiman", "sidra",
                "Tooba", "zeeshan", "Hyper", "Don", "Chaudary", "Muaaz"
            };
            var MyQueryResult = from names in myNamesArray
                                where names.Length >= 3
                                select names;

            Console.WriteLine("name---first2letters--Caps--length");
            foreach (var names in MyQueryResult)
            {
                Console.Write(names + " ");
                Console.Write(names.Substring(0, 2) + " ");
                Console.Write(names.ToUpper() + " ");
                Console.WriteLine(names.ToUpper().Length);
            }



            //Maipulatin with Tuple array using the LINQ queries
            var myTupleResults = studentTuples.Where(tuples => tuples.Item5.Substring(0, 2) == "ab" && tuples.Item5.Contains('b') && tuples.Item1 == 1);


            //We can write queries in Two ways

            /*from tuples in studentTuples
             * where tuples.Item5.Substring(0, 2) == "ab" && tuples.Item5.Contains('b') && tuples.Item1==12
             * select tuples;*/

            //Getting array in the resul of LINQ Queries
            var myTupleResultsArray = studentTuples.Where(tuples => tuples.Item5.Substring(0, 2) == "ab" && tuples.Item5.Contains('b') && tuples.Item1 == 1).ToArray();

            Console.WriteLine(myTupleResultsArray[0]);



            Console.WriteLine("\n\n From Tuples results\nName---first2letters--Caps--length");
            foreach (var tuples in myTupleResults)
            {
                Console.Write(tuples.Item1 + " ");
                Console.Write(tuples.Item2 + " ");
                Console.Write(tuples.Item3 + " ");
                Console.Write(tuples.Item4.ToString() + " ");
                Console.WriteLine(tuples.Item5.Substring(0));
            }
            Program pg = new Program();

            MakeNoise mk = new MakeNoise(pg.Noise);

            mk(10);
        }