• Xhanch - WP Manga - Have your own automated manga reader website

C#.NET Script – Associative Array

Associative array is very useful due to its flexibility and expandability. It can contain any data types and unlimited sub arrays. So far, .NET framework has not provide similar functionality with PHP associative array. Don’t worry, we can still do it in C#.NET by utilizing dictionary. We have to use dictionary to keep the order of array element entry. If we use hashtable, the element order will be messed up. In this article, we will show you how dictionary can support the flexibility and expandability of PHP associative array.

Source Code

Here is the Associative Array class code, you may save it to a single file

    //By    : Xhanch Studio
    //URL   : http://xhanch.com/

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections.ObjectModel;

    namespace AssociativeArray{
        public class AssociativeArray{
            public Dictionary<object, object> Item;

            public AssociativeArray(){
               this.Item = new Dictionary<object, object>();
            }

            public void Add(object name, object value){
                this.Item.Add(name, value);
            }

            public void Add(object name, AssociativeArray value){
                this.Item.Add(name, value.Item);
            }

            public Dictionary<object, object>.KeyCollection GetKeys(){
                return this.Item.Keys;
            }

            public bool InArray(object hook){
                return this.Item.ContainsKey(hook);
            }

            public int Count(){
                return this.Item.Count;
            }

            public static bool IsAssociativeArray(){
                return (this.Item.GetType().ToString().StartsWith("System.Collections.Generic.Dictionary"));
            }
        }
    }

Here is how to use the Associative Array class:

using System;
using AssociativeArray;

namespace Test{
    public class Test{
        static void Main(string[] args){
            AssociativeArray arr= new AssociativeArray();
            arr.Add("elm 1", "value 1");
            arr.Add("elm 2", true);
            arr.Add("elm 3", 1);

            //Add a sub array
            AssociativeArray arrChd = new AssociativeArray();
            arrChd .Add("chd 1", "value 1");
            arrChd .Add("chd 2", true);
            arrChd .Add("chd 3", 1);
            arr.Add("elm 4", arrChd);

            // List all AssociativeArray manually
            foreach (string key in arr.GetKeys()){
                //Check if the current element is an associative array
                if(AssociativeArray.IsAssociativeArray(arr.Item[key])){
                    //Accessing sub array
                    AssociativeArray tmp = new AssociativeArray();
                    tmp.Item = arr.Item[key];
                    foreach (string key1 in tmp.GetKeys()){
                        Console.WriteLine(key1 + ": " + tmp.Item[key1 ]);
                    }
                }else
                    Console.WriteLine(key + ": " + arr.Item[key]);
            }

	    // Single Item
            Console.WriteLine("User: " + arr.Item["Line 1"]);
        }
    }
}

Click here to support our work. Thanks :)


2 Responses to “C#.NET Script – Associative Array”

  1. aleroot says:

    This method in the class :
    public static bool IsAssociativeArray(){
    return (this.Item.GetType().ToString().StartsWith(“System.Collections.Generic.Dictionary”));
    }

    Give me an error “Impossible use Keyword this in static method” !

    When i try to do this in my program :

    mp.Item = arr.Item[key];

    Give me an error :
    Cast Missing , Impossible convert object in ‘System.Collections.Generic.Dictionary’.

    Why ?
    Have you try to use this class ??

    • Susanto BSc says:

      This class has been tested for sure since I have used it on some of my projects.
      The error you get does not make sense.
      FYI, this class is built under .NET FX 3.5.
      Perhaps it is caused by incompatible version.

Leave a Reply

  • NOTICE

    Xhanch Studio is finally online after successfully moved from shared hosting to our own VPS Hosting.

    Please note that our primary email admin@xhanch.com is not functioning yet. So, please send your emails to xhanch@gmail.com for the moment until we resolve this issue.

    Regards, Xhanch Studio
  • Sponsored Ads

    WalkNote.com - A Place to Share, Have Fun and Get Connected Place you ad here
  • PayPal Verified

    Happy with our free services? You may donate us. Thanks!

    Donate
  • Latest Tweets

    Here are our recent tweets:

    • @xhanch Your a legend!!! I have just used the first part of the code so the links are a different colour and it looks fab, Thanks! - posted on 3 days ago via Tweetie for Mac

    • Xhanch - My Twitter 2.0.2 is released. Some minor fixings - posted on 3 days ago via web

    • We have finished the website migration to a VPS server - posted on 3 days ago via web

    • @Bunglenick put this code to custom CSS: {xmt_id}.xmt ul li.tweet_list{color:#ffffff} {xmt_id}.xmt ul li.tweet_list a{color:#ffffff} - posted on 3 days ago via web

    • @xhanch Hi there, how do I go about changing the colour of the text in your twitter app? Its black but I need white. - posted on 5 days ago via Tweetie for Mac