Don't know how to convert a string value to add into a int dictionnary.

After spliting a string input into multiple string values, I would like to store they as int values in a dictionary. I think my code is pretty much ok, except the fact that I don’t know how to convert thoses splited values before adding these.

Here is my script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class loadArena : MonoBehaviour {

public string rawMap;
string inputMap;

public Dictionary<int, int> map = new Dictionary<int, int> ();

void Start () {
	rawMap = null;
}

void OnGUI () {
	if (rawMap == null) {
		inputMap = GUI.TextField (new Rect (Screen.width / 2 - 60, Screen.height / 2 - 20, 120, 30), inputMap);
		if (GUI.Button (new Rect (Screen.width / 2 - 60, Screen.height / 2 + 20, 120, 30), "Load map")) {
			rawMap = inputMap;
			ReadMap ();
		}
	}
}

void ReadMap () {
	foreach (string argument in rawMap.Split (';')) {
		var pair = argument.Split (':');
		map[pair[0]] = pair[1];
	}
	foreach (string key in map.Keys) {
		Debug.Log (string.Format ("{0} = {1}", key, map[key]));
	}
}

}

You have a dictionary with a key and a value of type int, but then you use it as a string.

using System;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    public string rawMap;
    string inputMap;
    public Dictionary<int, int> map = new Dictionary<int, int>();
    void Start()
    {
        rawMap = null;
    }
    void OnGUI()
    {
        if (rawMap == null)
        {
            inputMap = GUI.TextField(new Rect(Screen.width / 2 - 60, Screen.height / 2 - 20, 120, 30), inputMap);
            if (GUI.Button(new Rect(Screen.width / 2 - 60, Screen.height / 2 + 20, 120, 30), "Load map"))
            {
                rawMap = inputMap;
                ReadMap();
            }
        }
    }
    void ReadMap()
    {
        foreach (string argument in rawMap.Split(';'))
        {
            var pair = argument.Split(':');
            map[Int32.Parse(pair[0])] = Int32.Parse(pair[1]);
        }
        foreach (int key in map.Keys)
        {
            Debug.Log(string.Format("{0} = {1}", key, map[key]));
        }
    }
}