Sobes.tech
Junior

Чӣ гуна ба арзиш дар луғат дар C# дастрасӣ пайдо кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Шумо метавонед индексаторро бо калид ё усули TryGetValue истифода баред.

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

    • арзишро барои калиди муайян бармегардонад.
    • Агар калид вуҷуд надошта бошад, KeyNotFoundException меандозад.
    // Мисоли истифодаи индексатор
    Dictionary<string, int> синну сол = new Dictionary<string, int>();
    синну сол["Alice"] = 30;
    
    int синну солиAlice = синну сол["Alice"]; // Дастрасӣ ба арзиш
    
    // синну сол["Bob"]; // Агар "Bob" вуҷуд надошта бошад, KeyNotFoundException меандозад
    
  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 (арзиши пешфарз)