C# GetValueOrDefault(TKey):获取具有指定键的元素的值,或者如果该键不存在,则返回默认值

C# GetValueOrDefault(TKey) 方法的完整攻略

方法介绍

在 Dictionary 类中,GetValueOrDefault(TKey) 方法用于获取与指定键关联的值。如果未找到键,则此方法将返回 TValue 类型的默认值。

方法签名

该方法的签名为:

public static TValue GetValueOrDefault<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TKey key);

参数说明

  • dictionary:IDictionary 接口,表示要从中获取值的泛型字典。
  • key:TKey 类型,表示要检索值的键。

返回值

如果字典包含指定键,则返回该键对应的值;否则返回 TValue 类型的默认值。

示例说明

下面是两个使用 GetValueOrDefault 方法的示例:

示例 1

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        Dictionary<string, int> numbers = new Dictionary<string, int>();
        numbers.Add("one", 1);
        numbers.Add("two", 2);
        numbers.Add("three", 3);

        // 获取存在的键
        int value1 = numbers.GetValueOrDefault("two");
        Console.WriteLine(value1);

        // 获取不存在的键
        int value2 = numbers.GetValueOrDefault("six");
        Console.WriteLine(value2);
    }
}

该示例创建了一个包含三个键值对的字典,然后使用 GetValueOrDefault 方法获取字典中的值。由于该示例中的字典包含键 "two",所以第一个 GetValueOrDefault 方法调用返回了字典中与 "two" 关联的值 2。由于该字典不包含键 "six",因此第二个 GetValueOrDefault 方法调用返回字典中默认值的类型 int 的默认值 0。

示例 2

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        Dictionary<string, string> dictionary = new Dictionary<string, string>();
        dictionary.Add("England", "London");
        dictionary.Add("France", "Paris");

        // TValue 类型为引用类型(string),并且字典中存在指定键,则返回该键对应的值
        string capital1 = dictionary.GetValueOrDefault("England");
        Console.WriteLine(capital1);

        // TValue 类型为引用类型(string),并且字典中不存在指定键,则返回默认值 null
        string capital2 = dictionary.GetValueOrDefault("Germany");
        Console.WriteLine(capital2);

        // TValue 类型为值类型(int),并且字典中不存在指定键,则返回默认值 0(即 TValue 的默认值)
        int value = dictionary.GetValueOrDefault("Spain");
        Console.WriteLine(value);
    }
}

该示例创建了一个包含两个键值对的字典,并使用 GetValueOrDefault 方法从字典中获取值。其中,capital1 和 capital2 变量都是字符串,因为字典中存储的值是引用类型 string。对于不存在于字典中的键 "Germany",GetValueOrDefault 方法返回 null,因为该字典引用的值类型为字符串。对于不存在于字典中的键 "Spain",GetValueOrDefault 方法返回默认值 0,因为该字典引用的值类型为字典类型 TValue 的默认值。

在第二个 GetValueOrDefault 方法调用中,由于 TValue 类型为引用类型(string),字典中不存在指定键,则返回默认值 null,类型为 TValue 的默认值。在第三个 GetValueOrDefault 方法调用中,由于 TValue 类型为值类型(int),字典中不存在指定键,则返回默认值 0,类型为 TValue 的默认值。

总结

GetValueOrDefault(TKey) 是 Dictionary 类型的扩展方法,用于获取与指定键关联的值。如果键不存在,该方法将返回 TValue 类型的默认值。在使用该方法时,请记得检查返回值是否为 null,以避免可能的 NullReferenceException 异常。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# GetValueOrDefault(TKey):获取具有指定键的元素的值,或者如果该键不存在,则返回默认值 - Python技术站

(0)
上一篇 2023年4月19日
下一篇 2023年4月19日

相关文章

  • C# Directory.Exists – 判断目录是否存在

    Directory.Exists是C#中用于判断指定路径的文件夹是否存在的方法,其返回值为布尔类型,如果存在则返回true,否则返回false。 Directory.Exists方法的使用方法: bool exists = Directory.Exists(path); 其中,path参数为字符串类型的要检查的目录路径。此时exists变量的值为true或f…

    C# 2023年4月19日
    00
  • C#实现闹钟AlarmClock实例代码

    下面是详细讲解“C#实现闹钟AlarmClock实例代码”的完整攻略: 1. 确定需求 我们要实现一个简单的闹钟程序,具有设置闹钟时间、开启闹钟、关闭闹钟等功能。 2. 创建C#控制台应用程序 打开Visual Studio,选择“新建项目”,选择“Visual C#”类型,“控制台应用程序”模板,输入项目名称,点击“创建”按钮。这样就创建了一个空白的控制台…

    C# 2023年6月6日
    00
  • C#异步编程几点需要注意的地方

    以下是关于C#异步编程需要注意的几点攻略: 1. 使用async和await关键字 什么是异步编程 异步编程是指可以在主线程任务执行的同时,异步执行另一个线程任务。 C#异步编程的实现方式 在C#中,异步编程可以使用async和await关键字实现。其中,async关键字表示异步方法,而await关键字表示等待异步方法执行完毕。 下面是一个简单示例: pub…

    C# 2023年5月15日
    00
  • c# 使用异步编程的方法

    C#使用异步编程的方法 在C#中,使用异步编程可以让应用程序更加高效、协调、并发和可伸缩。本文将提供使用异步编程的完整攻略。 什么是异步编程? 异步编程是指在程序执行某个任务时,可以继续执行其他任务,而不需要等待该任务完成。异步编程可以让应用程序更加高效、协调、并发和可伸缩。 在C#中,异步编程的主要特点是使用任务(Task)和异步方法(Async/Awai…

    C# 2023年5月31日
    00
  • C#从字符串中指定位置移除子字符串的方法

    请允许我给出一份详细的攻略来回答您的问题。 问题分析 在C#中,我们可以轻松地使用String类型的Remove方法来从字符串中删除指定的子字符串。但是有一些时候,我们需要从字符串的指定位置开始移除子字符串,这些子字符串可能会出现多次,或者不止一个。 这就需要我们使用Substring方法来截取字符串,并使用Replace方法来将需要移除的子字符串替换为空字…

    C# 2023年6月8日
    00
  • C# Rx的主要接口深入理解

    下面就为大家详细讲解一下“C# Rx的主要接口深入理解”的完整攻略。 什么是C# Rx C# Rx(Reactive Extensions)是微软提供的一组编程工具,旨在帮助开发者使用简单易懂的语法来处理异步数据流,使得代码更加简洁高效。Rx 工具包含许多接口,每个接口都具有特定的功能特性。在本文中,我们着重探讨C# Rx的主要接口。 C# Rx的主要接口 …

    C# 2023年6月1日
    00
  • C#两个相同属性的类赋值方法

    为了理解C#两个相同属性的类赋值方法,我们需要首先了解两个重要的概念:类和类的属性。类是对象的模板或蓝图,它定义了对象的状态和行为;而属性是类的成员之一,用来描述对象的特征或状态。在C#中,我们可以通过类的赋值来将一个对象的属性的值赋给另一个对象。 接下来,我们将讨论C#两个相同属性的类赋值方法的完整攻略,过程中将包含两条示例说明: 一、初步了解类和类的属性…

    C# 2023年5月31日
    00
  • C#实现单例模式的几种方法总结

    C#实现单例模式的几种方法总结 单例模式是一种常用的设计模式,它确保一个类只有一个实例,而且提供一个访问该实例的全局访问点。在C#中,实现单例模式有多种方法,下面将详细讲解。 1. 懒汉式单例模式 在懒汉式单例模式中,实例对象在第一次被访问时才会被创建。它的实现方式比较简单,如下所示: public class Singleton { private sta…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部