Прерывание цикла

Алгоритм, считающий вхождение каждого символа в строку. Проблема в том что при построении цикла, где-то что-то не учел, выводит каждый шаг подсчета, при любом изменении работает не корректно:

using System;
using System.Linq;
namespace Reverse_String
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string arr = Console.ReadLine().ToLower();
            string result = "";
            foreach (var val in arr)
            {
                if (!result.Contains(val))
                {
                    int count = 0;
                    for (var i = 0; i < arr.Length; i++)
                    {
                        if (arr[i] == val)
                            count++;
                    }
                    Console.WriteLine(result += val + "-" + count + " ");
                }
            }
            Console.ReadLine();
        }
    }
}

Как нужно поменять цикл, что бы результат выводился только конечный?

Пример вывода:

Hello World
h-1
h-1 e-1
h-1 e-1 l-3
h-1 e-1 l-3 o-2
h-1 e-1 l-3 o-2 w-1
h-1 e-1 l-3 o-2 w-1 r-1
h-1 e-1 l-3 o-2 w-1 r-1 d-1

А нужно что бы вывел вот так:

Hello World
h-1 e-1 l-3 o-2 w-1 r-1 d-1

Ответы (0 шт):