Proste dodawanie cyfr w stringu

0

Witam,czy pomógłby mi ktoś zrobić prosty program,który zsumuje wszystkie cyfry występujące w stringu?Oto na przykładzie.
Problemem jest to,że sumują się tylko wartości znaków ASCII .
Czy da radę to zrobić inaczej,niż od każdego dodania odejmować 48(aby uzyskać wartość cyfry)?

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

namespace ConsoleApp9
{
    class Program
    {
        static void Main(string[] args)
        {
            string numerki = "123456";
            int suma = 0;
            for(int i=0;i<numerki.Length;i++)
            {
                suma += (int)numerki[i];
            }
            Console.WriteLine(suma);

            Console.ReadKey();
        }
    }
}
2

Można bez odejmowania 48 w ten sposób:

static void Main(string[] args)
        {
            string numerki = "123456";
            int suma = 0;
            foreach (char i in numerki)
            {
                suma += (int)Char.GetNumericValue(i);
            }
            Console.WriteLine(suma);

            Console.ReadKey();
        }
1

Możesz zrobić teź tak:

            string number = "123456";
            var sum = number.Sum(c => c - '0');
1

Ewentualnie w poniższy sposób i bez odejmowania, ale sposób @litrmleka będzie pewnie o rząd wielkości szybszy.

    var number = "123456";
    var sum = number.Sum(c => int.Parse(c.ToString()));

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