Marshal
Marshal

Reputation: 1237

Parse string to int array

Hi there I am working on increasing my knowledge of C# and I want to do a simple task but am finding it difficult.

I want to parse each character of a string to an int array.

    int[] d = new int[10];
     private void button1_Click(object sender, EventArgs e)
    {
        s = textBox1.Text;

        d[2] = Convert.ToInt32(Convert.ToString(s[1]));
        d[3] = Convert.ToInt32(Convert.ToString(s[2]));
        d[4] = Convert.ToInt32(Convert.ToString(s[3]));
        d[5] = Convert.ToInt32(Convert.ToString(s[4]));
        .....

I know the code is wrong but I wanted to show an example. Have looked at Google for the past hour but have found people wanting to display characters in new lines and using if statements to parse. I want something similar to above. Can this be done? Thank you for your time.

I found this line of code in Java which is exactly what I want to do but is there an equivilant?

    d1 = Integer.parseInt(String.valueOf(s.charAt(0)));

I now have a new problem that when i submit a number no matter how many numbers i put in it will come back with "Index was outside the bounds of the array."

I also need to limit it to 10 integers in the array d.

Upvotes: 2

Views: 13689

Answers (4)

Chandan Kumar
Chandan Kumar

Reputation: 4638

Can be done like this , if the string is like below

        string temps = "-5 8 4 0 1 17 25 -5 -3";
        int[] integerArray = temps.Split(' ').Select(x => int.Parse(x)).ToArray();
        Array.Sort(integerArray);
        foreach (var item in integerArray)
        {
            Console.WriteLine(item);
        }

Upvotes: 1

Rahul Tripathi
Rahul Tripathi

Reputation: 172458

Try this:-

var intArrayOfText = someTextBox.Text.ToCharArray().Select(x => (int)(x-'0'));

Upvotes: 1

L.B
L.B

Reputation: 116138

 var intArr =  "12345678".Select(c => (int)(c-'0')).ToArray();

Upvotes: 3

Anirudh Ramanathan
Anirudh Ramanathan

Reputation: 46738

Wrong brackets, to access the character within string.

d[2] = Convert.ToInt32(Convert.ToString(s(1)));
                                         ^

Use,

d[2] = Convert.ToInt32(Convert.ToString(s[1]));

Upvotes: 4

Related Questions