Junior
Чӣ гуна ба арзиш дар луғат дар C# дастрасӣ пайдо кардан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Шумо метавонед индексаторро бо калид ё усули TryGetValue истифода баред.
-
Индекатор (
[калид]):- арзишро барои калиди муайян бармегардонад.
- Агар калид вуҷуд надошта бошад,
KeyNotFoundExceptionмеандозад.
// Мисоли истифодаи индексатор Dictionary<string, int> синну сол = new Dictionary<string, int>(); синну сол["Alice"] = 30; int синну солиAlice = синну сол["Alice"]; // Дастрасӣ ба арзиш // синну сол["Bob"]; // Агар "Bob" вуҷуд надошта бошад, KeyNotFoundException меандозад -
Метод
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 (арзиши пешфарз)