导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

IDictionary<TKey, TValue> 接口

2013/12/13

表示键/值对的泛型集合。

Namespace:  System.Collections.Generic
程序集:  mscorlib(位于 mscorlib.dll 中)

public interface IDictionary<TKey, TValue> : ICollection<KeyValuePair<TKey, TValue>>, 
	IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable

类型参数

TKey

字典中键的类型。

TValue

字典中值的类型。

IDictionary<TKey, TValue> 类型公开以下成员。

  名称说明
公共属性Count获取 ICollection<T> 中包含的元素数。 (从 ICollection<T> 继承。)
公共属性IsReadOnly获取一个值,该值指示 ICollection<T> 是否为只读。 (从 ICollection<T> 继承。)
公共属性Item获取或设置具有指定键的元素。
公共属性Keys获取包含 IDictionary<TKey, TValue> 的键的 ICollection<T>
公共属性Values获取包含 IDictionary<TKey, TValue> 中的值的 ICollection<T>
返回顶部

  名称说明
公共方法Add(T)将某项添加到 ICollection<T> 中。 (从 ICollection<T> 继承。)
公共方法Add(TKey, TValue)IDictionary<TKey, TValue> 中添加一个带有所提供的键和值的元素。
公共方法ClearICollection<T> 中移除所有项。 (从 ICollection<T> 继承。)
公共方法Contains确定 ICollection<T> 是否包含特定值。 (从 ICollection<T> 继承。)
公共方法ContainsKey确定 IDictionary<TKey, TValue> 是否包含具有指定键的元素。
公共方法CopyTo从特定的 Array 索引开始,将 ICollection<T> 的元素复制到一个 Array 中。 (从 ICollection<T> 继承。)
公共方法GetEnumerator()返回一个循环访问集合的枚举器。 (从 IEnumerable 继承。)
公共方法GetEnumerator()返回一个循环访问集合的枚举数。 (从 IEnumerable<T> 继承。)
公共方法Remove(T)ICollection<T> 中移除特定对象的第一个匹配项。 (从 ICollection<T> 继承。)
公共方法Remove(TKey)IDictionary<TKey, TValue> 中移除具有指定键的元素。
公共方法TryGetValue获取与指定的键相关联的值。
返回顶部

  名称说明
公共扩展方法Aggregate<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, KeyValuePair<TKey, TValue>, KeyValuePair<TKey, TValue>>)重载。 对序列应用累加器函数。 (由 Enumerable 定义。)
公共扩展方法Aggregate<KeyValuePair<TKey, TValue>, TAccumulate>(TAccumulate, Func<TAccumulate, KeyValuePair<TKey, TValue>, TAccumulate>)重载。 对序列应用累加器函数。 指定的种子值用作初始的累加器值。 (由 Enumerable 定义。)
公共扩展方法Aggregate<KeyValuePair<TKey, TValue>, TAccumulate, TResult>(TAccumulate, Func<TAccumulate, KeyValuePair<TKey, TValue>, TAccumulate>, Func<TAccumulate, TResult>)重载。 对序列应用累加器函数。 将指定的种子值用作累加器的初始值,并使用指定的函数选择结果值。 (由 Enumerable 定义。)
公共扩展方法All<KeyValuePair<TKey, TValue>>确定序列中的所有元素是否满足条件。 (由 Enumerable 定义。)
公共扩展方法Any<KeyValuePair<TKey, TValue>>()重载。 确定序列是否包含任何元素。 (由 Enumerable 定义。)
公共扩展方法Any<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 确定序列中的任何元素是否都满足条件。 (由 Enumerable 定义。)
公共扩展方法AsEnumerable<KeyValuePair<TKey, TValue>>返回类型化为 IEnumerable<T> 的输入。 (由 Enumerable 定义。)
公共扩展方法AsQueryable()重载。 IEnumerable 转换为 IQueryable (由 Queryable 定义。)
公共扩展方法AsQueryable<KeyValuePair<TKey, TValue>>()重载。 将泛型 IEnumerable<T> 转换为泛型 IQueryable<T> (由 Queryable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Decimal>>)重载。 计算可以为 null 的 Decimal 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Double>>)重载。 计算可以为 null 的 Double 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Decimal>)重载。 计算 Decimal 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Double>)重载。 计算 Double 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32>)重载。 计算 Int32 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int64>)重载。 计算 Int64 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int32>>)重载。 计算可以为 null 的 Int32 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int64>>)重载。 计算可以为 null 的 Int64 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Single>>)重载。 计算可以为 null 的 Single 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Single>)重载。 计算 Single 值序列的平均值,该值可通过调用输入序列的每个元素的转换函数获取。 (由 Enumerable 定义。)
公共扩展方法Cast<TResult>IEnumerable 的元素转换为指定的类型。 (由 Enumerable 定义。)
公共扩展方法Concat<KeyValuePair<TKey, TValue>>连接两个序列。 (由 Enumerable 定义。)
公共扩展方法Contains<KeyValuePair<TKey, TValue>>(KeyValuePair<TKey, TValue>)重载。 通过使用默认的相等比较器确定序列是否包含指定的元素。 (由 Enumerable 定义。)
公共扩展方法Contains<KeyValuePair<TKey, TValue>>(KeyValuePair<TKey, TValue>, IEqualityComparer<KeyValuePair<TKey, TValue>>)重载。 通过使用指定的 IEqualityComparer<T> 确定序列是否包含指定的元素。 (由 Enumerable 定义。)
公共扩展方法Count<KeyValuePair<TKey, TValue>>()重载。 返回序列中的元素数量。 (由 Enumerable 定义。)
公共扩展方法Count<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 返回一个数字,表示在指定的序列中满足条件的元素数量。 (由 Enumerable 定义。)
公共扩展方法DefaultIfEmpty<KeyValuePair<TKey, TValue>>()重载。 返回指定序列的元素;如果序列为空,则返回单一实例集合中的类型参数的默认值。 (由 Enumerable 定义。)
公共扩展方法DefaultIfEmpty<KeyValuePair<TKey, TValue>>(KeyValuePair<TKey, TValue>)重载。 返回指定序列中的元素;如果序列为空,则返回单一实例集合中的指定值。 (由 Enumerable 定义。)
公共扩展方法Distinct<KeyValuePair<TKey, TValue>>()重载。 通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。 (由 Enumerable 定义。)
公共扩展方法Distinct<KeyValuePair<TKey, TValue>>(IEqualityComparer<KeyValuePair<TKey, TValue>>)重载。 通过使用指定的 IEqualityComparer<T> 对值进行比较返回序列中的非重复元素。 (由 Enumerable 定义。)
公共扩展方法ElementAt<KeyValuePair<TKey, TValue>>返回序列中指定索引处的元素。 (由 Enumerable 定义。)
公共扩展方法ElementAtOrDefault<KeyValuePair<TKey, TValue>>返回序列中指定索引处的元素;如果索引超出范围,则返回默认值。 (由 Enumerable 定义。)
公共扩展方法Except<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>)重载。 通过使用默认的相等比较器对值进行比较生成两个序列的差集。 (由 Enumerable 定义。)
公共扩展方法Except<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>, IEqualityComparer<KeyValuePair<TKey, TValue>>)重载。 通过使用指定的 IEqualityComparer<T> 对值进行比较产生两个序列的差集。 (由 Enumerable 定义。)
公共扩展方法First<KeyValuePair<TKey, TValue>>()重载。 返回序列中的第一个元素。 (由 Enumerable 定义。)
公共扩展方法First<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 返回序列中满足指定条件的第一个元素。 (由 Enumerable 定义。)
公共扩展方法FirstOrDefault<KeyValuePair<TKey, TValue>>()重载。 返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。 (由 Enumerable 定义。)
公共扩展方法FirstOrDefault<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 返回序列中满足条件的第一个元素;如果未找到这样的元素,则返回默认值。 (由 Enumerable 定义。)
公共扩展方法GroupBy<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>)重载。 根据指定的键选择器函数对序列中的元素进行分组。 (由 Enumerable 定义。)
公共扩展方法GroupBy<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>, IEqualityComparer<TKey>)重载。 根据指定的键选择器函数对序列中的元素进行分组,并使用指定的比较器对键进行比较。 (由 Enumerable 定义。)
公共扩展方法GroupBy<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<KeyValuePair<TKey, TValue>, TElement>)重载。 根据指定的键选择器函数对序列中的元素进行分组,并且通过使用指定的函数对每个组中的元素进行投影。 (由 Enumerable 定义。)
公共扩展方法GroupBy<KeyValuePair<TKey, TValue>, TKey, TResult>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<TKey, IEnumerable<KeyValuePair<TKey, TValue>>, TResult>)重载。 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。 (由 Enumerable 定义。)
公共扩展方法GroupBy<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<KeyValuePair<TKey, TValue>, TElement>, IEqualityComparer<TKey>)重载。 根据键选择器函数对序列中的元素进行分组。 通过使用比较器对键进行比较,并且通过使用指定的函数对每个组的元素进行投影。 (由 Enumerable 定义。)
公共扩展方法GroupBy<KeyValuePair<TKey, TValue>, TKey, TResult>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<TKey, IEnumerable<KeyValuePair<TKey, TValue>>, TResult>, IEqualityComparer<TKey>)重载。 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。 通过使用指定的比较器对键进行比较。 (由 Enumerable 定义。)
公共扩展方法GroupBy<KeyValuePair<TKey, TValue>, TKey, TElement, TResult>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<KeyValuePair<TKey, TValue>, TElement>, Func<TKey, IEnumerable<TElement>, TResult>)重载。 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。 通过使用指定的函数对每个组的元素进行投影。 (由 Enumerable 定义。)
公共扩展方法GroupBy<KeyValuePair<TKey, TValue>, TKey, TElement, TResult>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<KeyValuePair<TKey, TValue>, TElement>, Func<TKey, IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)重载。 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。 通过使用指定的比较器对键值进行比较,并且通过使用指定的函数对每个组的元素进行投影。 (由 Enumerable 定义。)
公共扩展方法GroupJoin<KeyValuePair<TKey, TValue>, TInner, TKey, TResult>(IEnumerable<TInner>, Func<KeyValuePair<TKey, TValue>, TKey>, Func<TInner, TKey>, Func<KeyValuePair<TKey, TValue>, IEnumerable<TInner>, TResult>)重载。 基于键相等对两个序列的元素进行关联并对结果进行分组。 使用默认的相等比较器对键进行比较。 (由 Enumerable 定义。)
公共扩展方法GroupJoin<KeyValuePair<TKey, TValue>, TInner, TKey, TResult>(IEnumerable<TInner>, Func<KeyValuePair<TKey, TValue>, TKey>, Func<TInner, TKey>, Func<KeyValuePair<TKey, TValue>, IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)重载。 基于键相等对两个序列的元素进行关联并对结果进行分组。 使用指定的 IEqualityComparer<T> 对键进行比较。 (由 Enumerable 定义。)
公共扩展方法Intersect<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>)重载。 通过使用默认的相等比较器对值进行比较生成两个序列的交集。 (由 Enumerable 定义。)
公共扩展方法Intersect<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>, IEqualityComparer<KeyValuePair<TKey, TValue>>)重载。 通过使用指定的 IEqualityComparer<T> 对值进行比较以生成两个序列的交集。 (由 Enumerable 定义。)
公共扩展方法Join<KeyValuePair<TKey, TValue>, TInner, TKey, TResult>(IEnumerable<TInner>, Func<KeyValuePair<TKey, TValue>, TKey>, Func<TInner, TKey>, Func<KeyValuePair<TKey, TValue>, TInner, TResult>)重载。 基于匹配键对两个序列的元素进行关联。 使用默认的相等比较器对键进行比较。 (由 Enumerable 定义。)
公共扩展方法Join<KeyValuePair<TKey, TValue>, TInner, TKey, TResult>(IEnumerable<TInner>, Func<KeyValuePair<TKey, TValue>, TKey>, Func<TInner, TKey>, Func<KeyValuePair<TKey, TValue>, TInner, TResult>, IEqualityComparer<TKey>)重载。 基于匹配键对两个序列的元素进行关联。 使用指定的 IEqualityComparer<T> 对键进行比较。 (由 Enumerable 定义。)
公共扩展方法Last<KeyValuePair<TKey, TValue>>()重载。 返回序列的最后一个元素。 (由 Enumerable 定义。)
公共扩展方法Last<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 返回序列中满足指定条件的最后一个元素。 (由 Enumerable 定义。)
公共扩展方法LastOrDefault<KeyValuePair<TKey, TValue>>()重载。 返回序列中的最后一个元素;如果序列中不包含任何元素,则返回默认值。 (由 Enumerable 定义。)
公共扩展方法LastOrDefault<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 返回序列中满足条件的最后一个元素;如果未找到这样的元素,则返回默认值。 (由 Enumerable 定义。)
公共扩展方法LongCount<KeyValuePair<TKey, TValue>>()重载。 返回一个 Int64,表示序列中的元素的总数量。 (由 Enumerable 定义。)
公共扩展方法LongCount<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 返回一个 Int64,表示序列中满足条件的元素的数量。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>()重载。 返回泛型序列中的最大值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Decimal>>)重载。 调用序列的每个元素上的转换函数并返回可空 Decimal 的最大值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Double>>)重载。 调用序列的每个元素上的转换函数并返回可空 Double 的最大值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Decimal>)重载。 调用序列的每个元素上的转换函数并返回最大 Decimal 值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Double>)重载。 调用序列的每个元素上的转换函数并返回最大 Double 值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32>)重载。 调用序列的每个元素上的转换函数并返回最大 Int32 值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int64>)重载。 调用序列的每个元素上的转换函数并返回最大 Int64 值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int32>>)重载。 调用序列的每个元素上的转换函数并返回可空 Int32 的最大值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int64>>)重载。 调用序列的每个元素上的转换函数并返回可空 Int64 的最大值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Single>>)重载。 调用序列的每个元素上的转换函数并返回可空 Single 的最大值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Single>)重载。 调用序列的每个元素上的转换函数并返回最大 Single 值。 (由 Enumerable 定义。)
公共扩展方法Max<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, TResult>)重载。 调用泛型序列的每个元素上的转换函数并返回最大结果值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>()重载。 返回泛型序列中的最小值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Decimal>>)重载。 调用序列的每个元素上的转换函数并返回可空 Decimal 的最小值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Double>>)重载。 调用序列的每个元素上的转换函数并返回可空 Double 的最小值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Decimal>)重载。 调用序列的每个元素上的转换函数并返回最小 Decimal 值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Double>)重载。 调用序列的每个元素上的转换函数并返回最小 Double 值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32>)重载。 调用序列的每个元素上的转换函数并返回最小 Int32 值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int64>)重载。 调用序列的每个元素上的转换函数并返回最小 Int64 值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int32>>)重载。 调用序列的每个元素上的转换函数并返回可空 Int32 的最小值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int64>>)重载。 调用序列的每个元素上的转换函数并返回可空 Int64 的最小值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Single>>)重载。 调用序列的每个元素上的转换函数并返回可空 Single 的最小值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Single>)重载。 调用序列的每个元素上的转换函数并返回最小 Single 值。 (由 Enumerable 定义。)
公共扩展方法Min<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, TResult>)重载。 调用泛型序列的每个元素上的转换函数并返回最小结果值。 (由 Enumerable 定义。)
公共扩展方法OfType<TResult>根据指定类型筛选 IEnumerable 的元素。 (由 Enumerable 定义。)
公共扩展方法OrderBy<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>)重载。 根据键按升序对序列的元素排序。 (由 Enumerable 定义。)
公共扩展方法OrderBy<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>, IComparer<TKey>)重载。 使用指定的比较器按升序对序列的元素排序。 (由 Enumerable 定义。)
公共扩展方法OrderByDescending<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>)重载。 根据键按降序对序列的元素排序。 (由 Enumerable 定义。)
公共扩展方法OrderByDescending<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>, IComparer<TKey>)重载。 使用指定的比较器按降序对序列的元素排序。 (由 Enumerable 定义。)
公共扩展方法Reverse<KeyValuePair<TKey, TValue>>反转序列中元素的顺序。 (由 Enumerable 定义。)
公共扩展方法Select<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, TResult>)重载。 将序列中的每个元素投影到新表中。 (由 Enumerable 定义。)
公共扩展方法Select<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, Int32, TResult>)重载。 通过合并元素的索引将序列的每个元素投影到新表中。 (由 Enumerable 定义。)
公共扩展方法SelectMany<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, IEnumerable<TResult>>)重载。 将序列的每个元素投影到 IEnumerable<T> 并将结果序列合并为一个序列。 (由 Enumerable 定义。)
公共扩展方法SelectMany<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, Int32, IEnumerable<TResult>>)重载。 将序列的每个元素投影到 IEnumerable<T>,并将结果序列合并为一个序列。 每个源元素的索引用于该元素的投影表。 (由 Enumerable 定义。)
公共扩展方法SelectMany<KeyValuePair<TKey, TValue>, TCollection, TResult>(Func<KeyValuePair<TKey, TValue>, IEnumerable<TCollection>>, Func<KeyValuePair<TKey, TValue>, TCollection, TResult>)重载。 将序列的每个元素投影到 IEnumerable<T>,并将结果序列合并为一个序列,并对其中每个元素调用结果选择器函数。 (由 Enumerable 定义。)
公共扩展方法SelectMany<KeyValuePair<TKey, TValue>, TCollection, TResult>(Func<KeyValuePair<TKey, TValue>, Int32, IEnumerable<TCollection>>, Func<KeyValuePair<TKey, TValue>, TCollection, TResult>)重载。 将序列的每个元素投影到 IEnumerable<T>,并将结果序列合并为一个序列,并对其中每个元素调用结果选择器函数。 每个源元素的索引用于该元素的中间投影表。 (由 Enumerable 定义。)
公共扩展方法SequenceEqual<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>)重载。 通过使用相应类型的默认相等比较器对序列的元素进行比较,以确定两个序列是否相等。 (由 Enumerable 定义。)
公共扩展方法SequenceEqual<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>, IEqualityComparer<KeyValuePair<TKey, TValue>>)重载。 使用指定的 IEqualityComparer<T> 对两个序列的元素进行比较,以确定序列是否相等。 (由 Enumerable 定义。)
公共扩展方法Single<KeyValuePair<TKey, TValue>>()重载。 返回序列的唯一元素;如果该序列并非恰好包含一个元素,则会引发异常。 (由 Enumerable 定义。)
公共扩展方法Single<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 返回序列中满足指定条件的唯一元素;如果有多个这样的元素存在,则会引发异常。 (由 Enumerable 定义。)
公共扩展方法SingleOrDefault<KeyValuePair<TKey, TValue>>()重载。 返回序列中的唯一元素;如果该序列为空,则返回默认值;如果该序列包含多个元素,此方法将引发异常。 (由 Enumerable 定义。)
公共扩展方法SingleOrDefault<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 返回序列中满足指定条件的唯一元素;如果这类元素不存在,则返回默认值;如果有多个元素满足该条件,此方法将引发异常。 (由 Enumerable 定义。)
公共扩展方法Skip<KeyValuePair<TKey, TValue>>跳过序列中指定数量的元素,然后返回剩余的元素。 (由 Enumerable 定义。)
公共扩展方法SkipWhile<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素。 (由 Enumerable 定义。)
公共扩展方法SkipWhile<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32, Boolean>)重载。 只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素。 将在谓词函数的逻辑中使用元素的索引。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Decimal>>)重载。 计算可以为 null 的 Decimal 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Double>>)重载。 计算可以为 null 的 Double 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Decimal>)重载。 计算 Decimal 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Double>)重载。 计算 Double 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32>)重载。 计算 Int32 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int64>)重载。 计算 Int64 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int32>>)重载。 计算可以为 null 的 Int32 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int64>>)重载。 计算可以为 null 的 Int64 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Single>>)重载。 计算可以为 null 的 Single 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Single>)重载。 计算 Single 值序列的和,这些值是通过对输入序列中的每个元素调用转换函数得来的。 (由 Enumerable 定义。)
公共扩展方法Take<KeyValuePair<TKey, TValue>>从序列的开头返回指定数量的连续元素。 (由 Enumerable 定义。)
公共扩展方法TakeWhile<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 只要满足指定的条件,就会返回序列的元素。 (由 Enumerable 定义。)
公共扩展方法TakeWhile<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32, Boolean>)重载。 只要满足指定的条件,就会返回序列的元素。 将在谓词函数的逻辑中使用元素的索引。 (由 Enumerable 定义。)
公共扩展方法ToArray<KeyValuePair<TKey, TValue>>IEnumerable<T> 创建一个数组。 (由 Enumerable 定义。)
公共扩展方法ToDictionary<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>)重载。 根据指定的键选择器函数,从 IEnumerable<T> 创建一个 Dictionary<TKey, TValue> (由 Enumerable 定义。)
公共扩展方法ToDictionary<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>, IEqualityComparer<TKey>)重载。 根据指定的键选择器函数和键比较器,从 IEnumerable<T> 创建一个 Dictionary<TKey, TValue> (由 Enumerable 定义。)
公共扩展方法ToDictionary<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<KeyValuePair<TKey, TValue>, TElement>)重载。 根据指定的键选择器和元素选择器函数,从 IEnumerable<T> 创建一个 Dictionary<TKey, TValue> (由 Enumerable 定义。)
公共扩展方法ToDictionary<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<KeyValuePair<TKey, TValue>, TElement>, IEqualityComparer<TKey>)重载。 根据指定的键选择器函数、比较器和元素选择器函数从 IEnumerable<T> 创建一个 Dictionary<TKey, TValue> (由 Enumerable 定义。)
公共扩展方法ToList<KeyValuePair<TKey, TValue>>IEnumerable<T> 创建一个 List<T> (由 Enumerable 定义。)
公共扩展方法ToLookup<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>)重载。 根据指定的键选择器函数,从 IEnumerable<T> 创建一个 Lookup<TKey, TElement> (由 Enumerable 定义。)
公共扩展方法ToLookup<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>, IEqualityComparer<TKey>)重载。 根据指定的键选择器函数和键比较器,从 IEnumerable<T> 创建一个 Lookup<TKey, TElement> (由 Enumerable 定义。)
公共扩展方法ToLookup<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<KeyValuePair<TKey, TValue>, TElement>)重载。 根据指定的键选择器和元素选择器函数,从 IEnumerable<T> 创建一个 Lookup<TKey, TElement> (由 Enumerable 定义。)
公共扩展方法ToLookup<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>, Func<KeyValuePair<TKey, TValue>, TElement>, IEqualityComparer<TKey>)重载。 根据指定的键选择器函数、比较器和元素选择器函数,从 IEnumerable<T> 创建一个 Lookup<TKey, TElement> (由 Enumerable 定义。)
公共扩展方法Union<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>)重载。 通过使用默认的相等比较器生成两个序列的并集。 (由 Enumerable 定义。)
公共扩展方法Union<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>, IEqualityComparer<KeyValuePair<TKey, TValue>>)重载。 通过使用指定的 IEqualityComparer<T> 生成两个序列的并集。 (由 Enumerable 定义。)
公共扩展方法Where<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>)重载。 基于谓词筛选值序列。 (由 Enumerable 定义。)
公共扩展方法Where<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32, Boolean>)重载。 基于谓词筛选值序列。 将在谓词函数的逻辑中使用每个元素的索引。 (由 Enumerable 定义。)
公共扩展方法Zip<KeyValuePair<TKey, TValue>, TSecond, TResult>通过使用指定的谓词函数合并两个序列。 (由 Enumerable 定义。)
返回顶部

IDictionary<TKey, TValue> 接口是键/值对的泛型集合的基接口。

每个元素都是一个存储在 KeyValuePair<TKey, TValue> 对象中的键/值对。

每一对都必须有唯一的键。实现在是否允许 keynull 方面有所不同。此值可以为 null,并且不必是唯一的。IDictionary<TKey, TValue> 接口允许对所包含的键和值进行枚举,但这并不意味着任何特定的排序顺序。

C# 语言中的 foreach 语句(在 Visual Basic 中为 For Each,在 C++ 中为 for each)需要集合中每个元素的类型。由于 IDictionary<TKey, TValue> 的每个元素都是一个键/值对,因此元素类型既不是键的类型,也不是值的类型。而是 KeyValuePair<TKey, TValue> 类型。例如:

foreach (KeyValuePair<int, string> kvp in myDictionary) {...}

foreach 语句是对枚举数的包装,它只允许从集合中读取,不允许写入集合。

说明注意:

由于键可以被继承而且它们的行为已更改,因此使用 Equals 方法进行比较并不能保证其绝对唯一性。

对实现者的说明

实现类必须有一种方式来对键进行比较。

下面的代码示例创建一个没有字符串的空 Dictionary<TKey, TValue>,其中有整数键,并且通过 IDictionary<TKey, TValue> 接口对其进行访问。

该代码示例使用 Add 方法添加一些元素。该示例演示,在尝试添加重复键时,Add 方法会引发 ArgumentException

该示例使用 Item 属性(在 C# 中为索引器)检索值,演示了在请求的键不存在时会引发 KeyNotFoundException,还演示了与键关联的值可以被替换。

该示例演示了:如果程序通常必须尝试不在字典中的键值,如何使用 TryGetValue 方法作为更有效的方式来检索值;另外还演示了:如何在调用 Add 方法之前使用 ContainsKey 方法来测试某个键是否存在。

最后,该示例演示如何枚举字典中的键和值,以及如何使用 Values 属性单独枚举值。


using System;
using System.Collections.Generic;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Create a new dictionary of strings, with string keys, 
      // and access it through the IDictionary generic interface.
      IDictionary<string, string> openWith =
          new Dictionary<string, string>();

      // Add some elements to the dictionary. There are no 
      // duplicate keys, but some of the values are duplicates.
      openWith.Add("txt", "notepad.exe");
      openWith.Add("bmp", "paint.exe");
      openWith.Add("dib", "paint.exe");
      openWith.Add("rtf", "wordpad.exe");

      // The Add method throws an exception if the new key is 
      // already in the dictionary.
      try
      {
         openWith.Add("txt", "winword.exe");
      }
      catch (ArgumentException)
      {
         outputBlock.Text += "An element with Key = \"txt\" already exists." + "\n";
      }

      // The Item property is another name for the indexer, so you 
      // can omit its name when accessing elements. 
      outputBlock.Text += String.Format("For key = \"rtf\", value = {0}.",
          openWith["rtf"]) + "\n";

      // The indexer can be used to change the value associated
      // with a key.
      openWith["rtf"] = "winword.exe";
      outputBlock.Text += String.Format("For key = \"rtf\", value = {0}.",
          openWith["rtf"]) + "\n";

      // If a key does not exist, setting the indexer for that key
      // adds a new key/value pair.
      openWith["doc"] = "winword.exe";

      // The indexer throws an exception if the requested key is
      // not in the dictionary.
      try
      {
         outputBlock.Text += String.Format("For key = \"tif\", value = {0}.",
             openWith["tif"]) + "\n";
      }
      catch (KeyNotFoundException)
      {
         outputBlock.Text += "Key = \"tif\" is not found." + "\n";
      }

      // When a program often has to try keys that turn out not to
      // be in the dictionary, TryGetValue can be a more efficient 
      // way to retrieve values.
      string value = "";
      if (openWith.TryGetValue("tif", out value))
      {
         outputBlock.Text += String.Format("For key = \"tif\", value = {0}.", value) + "\n";
      }
      else
      {
         outputBlock.Text += "Key = \"tif\" is not found." + "\n";
      }

      // ContainsKey can be used to test keys before inserting 
      // them.
      if (!openWith.ContainsKey("ht"))
      {
         openWith.Add("ht", "hypertrm.exe");
         outputBlock.Text += String.Format("Value added for key = \"ht\": {0}",
             openWith["ht"]) + "\n";
      }

      // When you use foreach to enumerate dictionary elements,
      // the elements are retrieved as KeyValuePair objects.
      outputBlock.Text += "\n";
      foreach (KeyValuePair<string, string> kvp in openWith)
      {
         outputBlock.Text += String.Format("Key = {0}, Value = {1}",
             kvp.Key, kvp.Value) + "\n";
      }

      // To get the values alone, use the Values property.
      ICollection<string> icoll = openWith.Values;

      // The elements of the ValueCollection are strongly typed
      // with the type that was specified for dictionary values.
      outputBlock.Text += "\n";
      foreach (string s in icoll)
      {
         outputBlock.Text += String.Format("Value = {0}", s) + "\n";
      }

      // To get the keys alone, use the Keys property.
      icoll = openWith.Keys;

      // The elements of the ValueCollection are strongly typed
      // with the type that was specified for dictionary values.
      outputBlock.Text += "\n";
      foreach (string s in icoll)
      {
         outputBlock.Text += String.Format("Key = {0}", s) + "\n";
      }

      // Use the Remove method to remove a key/value pair.
      outputBlock.Text += "\nRemove(\"doc\")" + "\n";
      openWith.Remove("doc");

      if (!openWith.ContainsKey("doc"))
      {
         outputBlock.Text += "Key \"doc\" is not found." + "\n";
      }
   }
}

/* This code example produces the following output:

An element with Key = "txt" already exists.
For key = "rtf", value = wordpad.exe.
For key = "rtf", value = winword.exe.
Key = "tif" is not found.
Key = "tif" is not found.
Value added for key = "ht": hypertrm.exe

Key = txt, Value = notepad.exe
Key = bmp, Value = paint.exe
Key = dib, Value = paint.exe
Key = rtf, Value = winword.exe
Key = doc, Value = winword.exe
Key = ht, Value = hypertrm.exe

Value = notepad.exe
Value = paint.exe
Value = paint.exe
Value = winword.exe
Value = winword.exe
Value = hypertrm.exe

Key = txt
Key = bmp
Key = dib
Key = rtf
Key = doc
Key = ht

Remove("doc")
Key "doc" is not found.
 */


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2014 Microsoft