Задать вопрос

Как вывести значения Dictionary?

Есть словарь с добавленными значениями
static Dictionary<(int, bool), string> Status = new Dictionary<(int, bool), string>();


        static Generator()
        {       
            Status.Add((1, false), "IsOnlyNumbers");
            Status.Add((2, false), "IsOnlyAlphabetLower");
            Status.Add((3, false), "IsOnlyAlphabetUpper");
            Status.Add((4, false), "IsOnlySymbols");

        }


Мне нужно вывести все эти значения на консоль в форматировании вида
5f61306b68092134960310.png
То есть дальше снизу должно быть: 2 - IsOnlyAlphabetLower: False и т.д.
Что получилось у меня
5f6130cbeecc3286002519.png
произошло конечно же это из-за вот такого кода:
foreach (var outer in Status.Keys)
            {
                foreach (var inner in Status.Values)
                {
                    if (outer.Item2 == false)
                    {
                        Console.Write($"{outer.Item1} - {inner}: ");
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write($"{outer.Item2}\n");
                        Console.ResetColor();
                    }
                }
            }

Как можно получить из такого словаря вывод вида:
1 - IsOnlyNumbers: False
2 - IsOnlyAlphabetLower: False
3 - IsOnlyAlphabetUpper: False
4 - IsOnlySymbols: False

Приветствую любые идеи вплоть до переделывания всего кода, так как уже всю голову поломал)

Весь код

using System;
using System.Collections.Generic;
using System.Linq;

namespace Lab_Generator
{
  
    class Program
    {
        
        static void Main(string[] args)
        {

            Generator.GetInfoTypes();

            Generator.SetTypePassword();
            
            Console.ReadLine();
        }
        
    }

    
    class Generator
    {
        static Dictionary<(int, bool), string> Status = new Dictionary<(int, bool), string>();


        static Generator()
        {       
            Status.Add((1, false), "IsOnlyNumbers");
            Status.Add((2, false), "IsOnlyAlphabetLower");
            Status.Add((3, false), "IsOnlyAlphabetUpper");
            Status.Add((4, false), "IsOnlySymbols");

        }
       
      public static void GetInfoTypes()
      {
            foreach (var outer in Status.Keys)
            {
                foreach (var inner in Status.Values)
                {
                    if (outer.Item2 == false)
                    {
                        Console.Write($"{outer.Item1} - {inner}: ");
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write($"{outer.Item2}\n");
                        Console.ResetColor();
                    }
                }
            }
        }
     
      public static void SetTypePassword()
      {
           
      }
    }
}

  • Вопрос задан
  • 2467 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@mbjuggernaut
foreach (var stat in Status)
{
if (stat.Key.Item2 == false)
{
Console.Write($"{stat.Key.Item1} - {stat.Value}: ");
...
...
}
}

А вообще это легко отследить если дебажить.)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы