Answers for "convert dictionary to object array c#"

C#
3

convert dictionary to object c#

class ObjectToMapTo
        {
            public int ID;
            public string Name;
            public bool IsAdmin;

            public override string ToString()
            {
                return $"(ID={ID} Name={Name} IsAdmin={IsAdmin})";
            }

        }


        static object MapDictToObj(Dictionary<string, object> dict, Type destObject)
        {

            object returnobj = Activator.CreateInstance(destObject);

            foreach (string key in dict.Keys)
            {
                object value = dict[key];

                FieldInfo field = destObject.GetField(key);
                if (field != null)
                {
                    field.SetValue(returnobj, value);
                }


            }

            return returnobj;
        }



        static void Main(string[] args)
        {
            Dictionary<string, object> dict = new Dictionary<string, object>();
            dict["ID"] = 1000;
            dict["Name"] = "This is a name";
            dict["IsAdmin"] = true;

            ObjectToMapTo obj = (ObjectToMapTo)MapDictToObj(dict, typeof(ObjectToMapTo));

            Console.WriteLine(obj);

            Console.ReadKey();
            //Returns: (ID=1000 Name=This is a name IsAdmin=True)

        }
Posted by: Guest on April-25-2021
0

c# array to dictionary

You can use the overload of Select which includes the index:

var dictionary = array.Select((value, index) => new { value, index })
                      .ToDictionary(pair => pair.value, pair => pair.index);
Or use Enumerable.Range:

var dictionary = Enumerable.Range(0, array.Length).ToDictionary(x => array[x]);
Note that ToDictionary will throw an exception if you try to provide two equal keys. You should think carefully about the possibility of your array having two equal values in it, and what you want to happen in that situation.

I'd be tempted just to do it manually though:

var dictionary = new Dictionary<string, int>();
for (int i = 0; i < array.Length; i++)
{
    dictionary[array[i]] = i;
}
Posted by: Guest on March-17-2021

Code answers related to "convert dictionary to object array c#"

C# Answers by Framework

Browse Popular Code Answers by Language