Sobes.tech
Junior

Как да получите стойността по ключ в речник в C#?

sobes.tech AI

Отговор от AI

Може да използвате индексатор с ключ или метода TryGetValue.

  1. Индекатор ([ключ]):

    • Връща стойността за посочения ключ.
    • Генерира KeyNotFoundException, ако ключът не съществува.
    // Пример за използване на индексатора
    Dictionary<string, int> възраст = new Dictionary<string, int>();
    възраст["Alice"] = 30;
    
    int възрастAlice = възраст["Alice"]; // Получаване на стойността
    
    // възраст["Bob"]; // Ще генерира KeyNotFoundException, ако "Bob" не съществува
    
  2. Метод TryGetValue(ключ, out стойност):

    • Опитва се да намери стойността за посочения ключ.
    • Връща true, ако ключът е намерен, и присвоява стойността на променливата стойност.
    • Връща false, ако ключът не е намерен, и стойност ще има стойността по подразбиране за типа.
    • По-сигурен при работа с потенциално липсващи ключове.
    // Пример за използване на `TryGetValue`
    Dictionary<string, int> възраст = new Dictionary<string, int>();
    възраст["Alice"] = 30;
    
    int възрастAlice;
    if (възраст.TryGetValue("Alice", out възрастAlice))
    {
        // Ключът "Alice" е намерен, възрастAlice съдържа 30
        // ... използваме
    }
    
    int възрастБоб;
    if (възраст.TryGetValue("Bob", out възрастБоб))
    {
        // Този блок няма да се изпълни, тъй като ключът "Bob" не съществува
    }
    else
    {
        // Ключът "Bob" не е намерен, възрастБоб ще бъде 0 (стойност по подразбиране)
    }
    

Може също да използвате метода GetValueOrDefault(ключ) (в .NET Core 2.1+ и .NET Standard 2.1+), който връща стойността за посочения ключ или стойността по подразбиране, ако ключът не е намерен.

// Пример за използване на `GetValueOrDefault`
Dictionary<string, int> възраст = new Dictionary<string, int>();
възраст["Alice"] = 30;

int възрастAlice = възраст.GetValueOrDefault("Alice"); // 30
int възрастБоб = възраст.GetValueOrDefault("Bob");     // 0 (стойност по подразбиране)