Rzutowanie ciągu znaków na tablicę int

0

Witajcie, rozwiązuje sobie podstawowe zadania z C# i natrafiłem na problem.

Treść zadania brzmi następująco:

Zdefiniuj klasę Liczba, która przechowuje w tablicy cyfry liczby dziesiętnej. Zdefiniuj
operacje wypisywania liczby, nadawania jej wartości (w postaci parametru konstruktora będącego
napisem) oraz mnożenia przez liczbę typu int. W przypadku gdy w czasie mnożenia okaże się, że
tablica jest za mała, procedura mnożąca powinna kopiować jej zawartość do większej. Zdefiniuj
wreszcie metodę silnia, która policzy silnię zadanej jako parametr liczby typu int.

Rozumiem, że mam stworzyć konstruktor przyjmujący argument typu string (przykładowa wartość "1252"),a następnie zapisujący każdą liczbę z tego stringa jako indeks tablicy? Ktoś wie jak to rzutować w łatwy sposób? Bo jedyne na co wpadłem to pętla for i przepisywanie każdego znaku z osobna do indeksu tablicy.

Pozdro

3

z napisu text skladajacego sie z cyfr chyba najlatwiej zrobic tablice intow numbers w ten sposob:

var numbers = text.Select(char.GetNumericValue).ToArray();
0

Dziękuję zadziałało. Musiałem tylko zmienić typ tablicy z int[] na double[] bo nie wiedziałem jak przeprowadzić konwersję typu tablicy.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1CSharp1
{
    class Liczba
    {
        private double[] CyfryLiczby;

        public Liczba() { }

        public Liczba(double[] tab)
        {
            this.CyfryLiczby = tab;
        }

        public Liczba(string liczba)
        {
            var numbers = liczba.Select(char.GetNumericValue).ToArray();
            CyfryLiczby = numbers;
        }

        public void Wypisz()
        {
            string s = "";
            foreach (var item in CyfryLiczby)
            {
                s += item;
            }
            Console.WriteLine(s);
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1