IMessageFilterTable<TFilterData> 接口
定义
定义协定的 interface,筛选器表必须实现它,从而使用从一个或多个筛选器派生的查询条件来检查消息。An interface that defines the contract that a filter table must implement to inspect messages with query criteria derived from one or more filters.
generic <typename TFilterData>
public interface class IMessageFilterTable : System::Collections::Generic::ICollection<System::Collections::Generic::KeyValuePair<System::ServiceModel::Dispatcher::MessageFilter ^, TFilterData>>, System::Collections::Generic::IDictionary<System::ServiceModel::Dispatcher::MessageFilter ^, TFilterData>, System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<System::ServiceModel::Dispatcher::MessageFilter ^, TFilterData>>
public interface IMessageFilterTable<TFilterData> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.ServiceModel.Dispatcher.MessageFilter,TFilterData>>, System.Collections.Generic.IDictionary<System.ServiceModel.Dispatcher.MessageFilter,TFilterData>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.ServiceModel.Dispatcher.MessageFilter,TFilterData>>
type IMessageFilterTable<'FilterData> = interface
interface IDictionary<MessageFilter, 'FilterData>
interface ICollection<KeyValuePair<MessageFilter, 'FilterData>>
interface seq<KeyValuePair<MessageFilter, 'FilterData>>
interface IEnumerable
Public Interface IMessageFilterTable(Of TFilterData)
Implements ICollection(Of KeyValuePair(Of MessageFilter, TFilterData)), IDictionary(Of MessageFilter, TFilterData), IEnumerable(Of KeyValuePair(Of MessageFilter, TFilterData))
类型参数
- TFilterData
与表中每个筛选器关联的数据的类型。The type of data associated with each filter in the table.
- 派生
- 实现
-
ICollection<KeyValuePair<MessageFilter,TFilterData>> ICollection<KeyValuePair<TKey,TValue>> IDictionary<MessageFilter,TFilterData> IEnumerable<KeyValuePair<MessageFilter,TFilterData>> IEnumerable<KeyValuePair<TKey,TValue>> IEnumerable<T> IEnumerable
注解
筛选器表是筛选器引擎的核心组件。The filter table is a core component of the filter engine. Windows Communication Foundation (WCF) 中筛选器引擎的主要用途是通过查找与消息匹配的所有筛选器,将应用程序逻辑与消息匹配。The primary use of the filter engine in Windows Communication Foundation (WCF) is to match application logic to messages by finding all the filters that match a message.
使用筛选器表可以将多个筛选器与单个消息相匹配,这比将它们分别进行匹配效率更高。A filter table allows multiple filters to be matched against a single message more efficiently than they can be matched separately. 筛选器表将筛选器数据与筛选器相关联。A filter table associates filter data with filters. 该表是键值对,其中键是 MessageFilter,值是关联的筛选器数据。The table is a collection of key-value pairs, where the key is the MessageFilter, and the value is the associated filter data. 筛选器数据可以是类型为通用参数中指定的类型的任何数据,并且可用于指定当消息与表中的筛选器相匹配时应采取的操作。Filter data can be any data of the type specified in the generic parameter and can be used to specify what actions to take if a message is matched by a filter in the table.
可以使用 IDictionary<TKey,TValue> 继承的 IMessageFilterTable<TFilterData> 功能来访问筛选器表条目。Filter table entries can be accessed using the IDictionary<TKey,TValue> functionality that IMessageFilterTable<TFilterData> inherits.
注意,筛选器实例只能添加到给定的 IMessageFilterTable<TFilterData> 一次。Note that a filter instance can only be added to a given IMessageFilterTable<TFilterData> once. 若要将此筛选器的多个实例添加到同一个筛选器表,请使用筛选器构造函数来创建其他实例。To add multiple instances of this filter to the same filter table, use a filter constructor to create additional instances.
当消息满足筛选器的查询条件时,筛选器与消息相匹配。A filter matches a message when the message satisfies the query criteria of the filter. 有四种重载匹配方法。There are four overloaded matching methods. 返回的数据是筛选器数据或 MessageFilter 对象自身。The data returned is either the filter data or the MessageFilter objects themselves. 无论是允许多个匹配还是仅一个匹配,都返回此数据。This data is returned whether multiple matches are allowed or only a single match. 下表显示每个重载的此信息。The following table shows this information for each overload.
| 方法名Method Name | 匹配Matches | 返回的数据Data Returned |
|---|---|---|
| GetMatchingValue | SingleSingle | FilterData |
| GetMatchingFilter | SingleSingle | MessageFilter |
| GetMatchingValues | 多种Multiple | FilterData |
| GetMatchingFilters | 多种Multiple | MessageFilter对象MessageFilter objects |
每个方法包含两个重载。Each method contains two overloads. 两个重载的区别是,一个重载使用 Message 参数,但不允许其检查正文的内容;另一个重载使用 MessageBuffer 参数,可以检查消息的任何部分。The difference between the two overloads is that one takes a Message parameter and is not permitted to examine the contents of the body; the other takes a MessageBuffer parameter and can examine any part of the message. 如果使用消息参数来调用方法,并且筛选器表包含检查消息正文内容的筛选器,则将引发异常。If you call a method with the message parameter, and the filter table contains a filter that examines the content of the message body, an exception is thrown. 如果您对表中的筛选器不确定,请调用使用消息缓冲区的重载。If you are unsure about the filters in a table, call the overload that takes a message buffer.
消息头自动缓冲,并且无需使用即可由筛选器检查。Message headers are automatically buffered and can be inspected by a filter without being consumed. 但是,如果由筛选器检查正文,则必须缓冲整个消息,因为查询将使用未缓冲消息正文并破坏其内容。But if the body is to be inspected by a filter, then the entire message must be buffered because an unbuffered message body is consumed by a query and its contents destroyed.
下面的类实现 IMessageFilterTable<TFilterData>:The following classes implement IMessageFilterTable<TFilterData>:
属性
| Count |
获取 ICollection<T> 中包含的元素数。Gets the number of elements contained in the ICollection<T>. (继承自 ICollection<T>) |
| IsReadOnly |
获取一个值,该值指示 ICollection<T> 是否为只读。Gets a value indicating whether the ICollection<T> is read-only. (继承自 ICollection<T>) |
| Item[TKey] |
获取或设置具有指定键的元素。Gets or sets the element with the specified key. (继承自 IDictionary<TKey,TValue>) |
| Keys |
获取包含 ICollection<T> 的键的 IDictionary<TKey,TValue>。Gets an ICollection<T> containing the keys of the IDictionary<TKey,TValue>. (继承自 IDictionary<TKey,TValue>) |
| Values |
获取一个 ICollection<T>,它包含 IDictionary<TKey,TValue> 中的值。Gets an ICollection<T> containing the values in the IDictionary<TKey,TValue>. (继承自 IDictionary<TKey,TValue>) |
方法
| Add(T) |
将某项添加到 ICollection<T> 中。Adds an item to the ICollection<T>. (继承自 ICollection<T>) |
| Add(TKey, TValue) |
向 IDictionary<TKey,TValue> 添加一个带有所提供的键和值的元素。Adds an element with the provided key and value to the IDictionary<TKey,TValue>. (继承自 IDictionary<TKey,TValue>) |
| Clear() |
从 ICollection<T> 中移除所有项。Removes all items from the ICollection<T>. (继承自 ICollection<T>) |
| Contains(T) |
确定 ICollection<T> 是否包含特定值。Determines whether the ICollection<T> contains a specific value. (继承自 ICollection<T>) |
| ContainsKey(TKey) |
确定是否 IDictionary<TKey,TValue> 包含带有指定键的元素。Determines whether the IDictionary<TKey,TValue> contains an element with the specified key. (继承自 IDictionary<TKey,TValue>) |
| CopyTo(T[], Int32) |
从特定的 ICollection<T> 索引开始,将 Array 的元素复制到一个 Array 中。Copies the elements of the ICollection<T> to an Array, starting at a particular Array index. (继承自 ICollection<T>) |
| GetEnumerator() |
返回循环访问集合的枚举数。Returns an enumerator that iterates through a collection. (继承自 IEnumerable) |
| GetMatchingFilter(Message, MessageFilter) |
返回一个值,该值指示指定的消息是否正好满足表中的一个筛选器的匹配条件,然后在 |
| GetMatchingFilter(MessageBuffer, MessageFilter) |
返回一个值,该值指示指定的消息或缓冲消息是否正好满足表中的一个筛选器的匹配条件,然后在 |
| GetMatchingFilters(Message, ICollection<MessageFilter>) |
返回一个值,该值指示指定的消息是否满足表中筛选器的匹配条件,然后将匹配筛选器添加到集合。Returns a value that indicates whether the match criterion of a filter in the table is satisfied by the specified message, and adds the matching filters to a collection. |
| GetMatchingFilters(MessageBuffer, ICollection<MessageFilter>) |
返回一个值,该值指示指定的缓冲消息是否满足表中筛选器的匹配条件,然后将匹配筛选器添加到集合。Returns a value that indicates whether the match criterion of a filter in the table is satisfied by the specified buffered message, and adds the matching filters to a collection. |
| GetMatchingValue(Message, TFilterData) |
返回一个值,该值指示指定的消息是否正好满足表中的一个筛选器的匹配条件,然后将匹配筛选数据添加到集合。Returns a value that indicates whether the match criterion of exactly one filter in the table is satisfied by the specified message, and adds the matching filter data to a collection. |
| GetMatchingValue(MessageBuffer, TFilterData) |
返回一个值,该值指示指定的缓冲消息是否正好满足表中的一个筛选器的匹配条件,然后将匹配筛选数据添加到集合。Returns a value that indicates whether the match criterion of exactly one filter in the table is satisfied by the specified buffered message, and adds the matching filter data to a collection. |
| GetMatchingValues(Message, ICollection<TFilterData>) |
返回一个值,该值指示指定的消息是否满足表中至少一个筛选器的匹配条件,然后将匹配筛选器的 |
| GetMatchingValues(MessageBuffer, ICollection<TFilterData>) |
返回一个值,该值指示指定的缓冲消息是否满足表中至少一个筛选器的匹配条件,然后将匹配筛选器的 |
| Remove(TKey) |
从 IDictionary<TKey,TValue> 中移除包含指定键的元素。Removes the element with the specified key from the IDictionary<TKey,TValue>. (继承自 IDictionary<TKey,TValue>) |
| TryGetValue(TKey, TValue) |
获取与指定键关联的值。Gets the value associated with the specified key. (继承自 IDictionary<TKey,TValue>) |
扩展方法
| CopyToDataTable<T>(IEnumerable<T>) |
在给定其泛型参数 |
| CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
在给定其泛型参数 |
| CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
在给定其泛型参数 |
| Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
对序列应用累加器函数。Applies an accumulator function over a sequence. |
| Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
对序列应用累加器函数。Applies an accumulator function over a sequence. 将指定的种子值用作累加器初始值。The specified seed value is used as the initial accumulator value. |
| Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
对序列应用累加器函数。Applies an accumulator function over a sequence. 将指定的种子值用作累加器的初始值,并使用指定的函数选择结果值。The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. |
| All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
确定序列中的所有元素是否都满足条件。Determines whether all elements of a sequence satisfy a condition. |
| Any<TSource>(IEnumerable<TSource>) |
确定序列是否包含任何元素。Determines whether a sequence contains any elements. |
| Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
确定序列中是否存在任意一个元素满足条件。Determines whether any element of a sequence satisfies a condition. |
| Append<TSource>(IEnumerable<TSource>, TSource) |
将一个值追加到序列末尾。Appends a value to the end of the sequence. |
| AsEnumerable<TSource>(IEnumerable<TSource>) |
返回类型化为 IEnumerable<T> 的输入。Returns the input typed as IEnumerable<T>. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
计算 Decimal 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of Decimal values that are obtained by invoking a transform function on each element of the input sequence. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
计算 Double 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of Double values that are obtained by invoking a transform function on each element of the input sequence. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
计算 Int32 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of Int32 values that are obtained by invoking a transform function on each element of the input sequence. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
计算 Int64 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of Int64 values that are obtained by invoking a transform function on each element of the input sequence. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
计算可以为 null 的 Decimal 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of nullable Decimal values that are obtained by invoking a transform function on each element of the input sequence. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
计算可以为 null 的 Double 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of nullable Double values that are obtained by invoking a transform function on each element of the input sequence. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
计算可以为 null 的 Int32 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of nullable Int32 values that are obtained by invoking a transform function on each element of the input sequence. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
计算可以为 null 的 Int64 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of nullable Int64 values that are obtained by invoking a transform function on each element of the input sequence. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
计算可以为 null 的 Single 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of nullable Single values that are obtained by invoking a transform function on each element of the input sequence. |
| Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
计算 Single 值序列的平均值,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the average of a sequence of Single values that are obtained by invoking a transform function on each element of the input sequence. |
| Cast<TResult>(IEnumerable) |
将 IEnumerable 的元素强制转换为指定的类型。Casts the elements of an IEnumerable to the specified type. |
| Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
连接两个序列。Concatenates two sequences. |
| Contains<TSource>(IEnumerable<TSource>, TSource) |
通过使用默认的相等比较器确定序列是否包含指定的元素。Determines whether a sequence contains a specified element by using the default equality comparer. |
| Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>) |
通过使用指定的 IEqualityComparer<T> 确定序列是否包含指定的元素。Determines whether a sequence contains a specified element by using a specified IEqualityComparer<T>. |
| Count<TSource>(IEnumerable<TSource>) |
返回序列中的元素数量。Returns the number of elements in a sequence. |
| Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
返回表示在指定的序列中满足条件的元素数量的数字。Returns a number that represents how many elements in the specified sequence satisfy a condition. |
| DefaultIfEmpty<TSource>(IEnumerable<TSource>) |
返回指定序列中的元素;如果序列为空,则返回单一实例集合中的类型参数的默认值。Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty. |
| DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) |
返回指定序列中的元素;如果序列为空,则返回单一实例集合中的指定值。Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. |
| Distinct<TSource>(IEnumerable<TSource>) |
通过使用默认的相等比较器对值进行比较,返回序列中的非重复元素。Returns distinct elements from a sequence by using the default equality comparer to compare values. |
| Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
通过使用指定的 IEqualityComparer<T> 对值进行比较,返回序列中的非重复元素。Returns distinct elements from a sequence by using a specified IEqualityComparer<T> to compare values. |
| ElementAt<TSource>(IEnumerable<TSource>, Int32) |
返回序列中指定索引处的元素。Returns the element at a specified index in a sequence. |
| ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32) |
返回序列中指定索引处的元素;如果索引超出范围,则返回默认值。Returns the element at a specified index in a sequence or a default value if the index is out of range. |
| Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
通过使用默认的相等比较器对值进行比较,生成两个序列的差集。Produces the set difference of two sequences by using the default equality comparer to compare values. |
| Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
通过使用指定的 IEqualityComparer<T> 对值进行比较,生成两个序列的差集。Produces the set difference of two sequences by using the specified IEqualityComparer<T> to compare values. |
| First<TSource>(IEnumerable<TSource>) |
返回序列中的第一个元素。Returns the first element of a sequence. |
| First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
返回序列中满足指定条件的第一个元素。Returns the first element in a sequence that satisfies a specified condition. |
| FirstOrDefault<TSource>(IEnumerable<TSource>) |
返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。Returns the first element of a sequence, or a default value if the sequence contains no elements. |
| FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
返回序列中满足条件的第一个元素;如果未找到这样的元素,则返回默认值。Returns the first element of the sequence that satisfies a condition or a default value if no such element is found. |
| GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
根据指定的键选择器函数对序列中的元素进行分组。Groups the elements of a sequence according to a specified key selector function. |
| GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
根据指定的键选择器函数对序列中的元素进行分组,并使用指定的比较器对键进行比较。Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer. |
| GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
根据指定的键选择器函数对序列中的元素进行分组,并且通过使用指定的函数对每个组中的元素进行投影。Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function. |
| GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
根据键选择器函数对序列中的元素进行分组。Groups the elements of a sequence according to a key selector function. 通过使用比较器对键进行比较,并且通过使用指定的函数对每个组的元素进行投影。The keys are compared by using a comparer and each group's elements are projected by using a specified function. |
| GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>) |
根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. |
| GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>) |
根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. 通过使用指定的比较器对键进行比较。The keys are compared by using a specified comparer. |
| GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>) |
根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. 通过使用指定的函数对每个组的元素进行投影。The elements of each group are projected by using a specified function. |
| GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>, IEqualityComparer<TKey>) |
根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值。Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. 通过使用指定的比较器对键值进行比较,并且通过使用指定的函数对每个组的元素进行投影。Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function. |
| GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>,TResult>) |
基于键值等同性对两个序列的元素进行关联,并对结果进行分组。Correlates the elements of two sequences based on equality of keys and groups the results. 使用默认的相等比较器对键进行比较。The default equality comparer is used to compare keys. |
| GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>,TResult>, IEqualityComparer<TKey>) |
基于键值等同性对两个序列的元素进行关联,并对结果进行分组。Correlates the elements of two sequences based on key equality and groups the results. 使用指定的 IEqualityComparer<T> 对键进行比较。A specified IEqualityComparer<T> is used to compare keys. |
| Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
通过使用默认的相等比较器对值进行比较,生成两个序列的交集。Produces the set intersection of two sequences by using the default equality comparer to compare values. |
| Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
通过使用指定的 IEqualityComparer<T> 对值进行比较,生成两个序列的交集。Produces the set intersection of two sequences by using the specified IEqualityComparer<T> to compare values. |
| Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>) |
基于匹配键对两个序列的元素进行关联。Correlates the elements of two sequences based on matching keys. 使用默认的相等比较器对键进行比较。The default equality comparer is used to compare keys. |
| Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>) |
基于匹配键对两个序列的元素进行关联。Correlates the elements of two sequences based on matching keys. 使用指定的 IEqualityComparer<T> 对键进行比较。A specified IEqualityComparer<T> is used to compare keys. |
| Last<TSource>(IEnumerable<TSource>) |
返回序列的最后一个元素。Returns the last element of a sequence. |
| Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
返回序列中满足指定条件的最后一个元素。Returns the last element of a sequence that satisfies a specified condition. |
| LastOrDefault<TSource>(IEnumerable<TSource>) |
返回序列中的最后一个元素;如果序列中不包含任何元素,则返回默认值。Returns the last element of a sequence, or a default value if the sequence contains no elements. |
| LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
返回序列中满足条件的最后一个元素;如果未找到这样的元素,则返回默认值。Returns the last element of a sequence that satisfies a condition or a default value if no such element is found. |
| LongCount<TSource>(IEnumerable<TSource>) |
返回表示序列中元素总数的 Int64。Returns an Int64 that represents the total number of elements in a sequence. |
| LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
返回表示序列中满足条件的元素的数量的 Int64。Returns an Int64 that represents how many elements in a sequence satisfy a condition. |
| Max<TSource>(IEnumerable<TSource>) |
返回泛型序列中的最大值。Returns the maximum value in a generic sequence. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
对序列中的每个元素调用转换函数,并返回最大的 Decimal 值。Invokes a transform function on each element of a sequence and returns the maximum Decimal value. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
对序列中的每个元素调用转换函数,并返回最大的 Double 值。Invokes a transform function on each element of a sequence and returns the maximum Double value. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
对序列中的每个元素调用转换函数,并返回最大的 Int32 值。Invokes a transform function on each element of a sequence and returns the maximum Int32 value. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
对序列中的每个元素调用转换函数,并返回最大的 Int64 值。Invokes a transform function on each element of a sequence and returns the maximum Int64 value. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最大的 Decimal 值。Invokes a transform function on each element of a sequence and returns the maximum nullable Decimal value. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最大的 Double 值。Invokes a transform function on each element of a sequence and returns the maximum nullable Double value. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最大的 Int32 值。Invokes a transform function on each element of a sequence and returns the maximum nullable Int32 value. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最大的 Int64 值。Invokes a transform function on each element of a sequence and returns the maximum nullable Int64 value. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最大的 Single 值。Invokes a transform function on each element of a sequence and returns the maximum nullable Single value. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
对序列中的每个元素调用转换函数,并返回最大的 Single 值。Invokes a transform function on each element of a sequence and returns the maximum Single value. |
| Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
对序列中的每个元素调用转换函数,并返回最大结果值。Invokes a transform function on each element of a generic sequence and returns the maximum resulting value. |
| Min<TSource>(IEnumerable<TSource>) |
返回泛型序列中的最小值。Returns the minimum value in a generic sequence. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
对序列中的每个元素调用转换函数,并返回最小的 Decimal 值。Invokes a transform function on each element of a sequence and returns the minimum Decimal value. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
对序列中的每个元素调用转换函数,并返回最小的 Double 值。Invokes a transform function on each element of a sequence and returns the minimum Double value. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
对序列中的每个元素调用转换函数,并返回最小的 Int32 值。Invokes a transform function on each element of a sequence and returns the minimum Int32 value. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
对序列中的每个元素调用转换函数,并返回最小的 Int64 值。Invokes a transform function on each element of a sequence and returns the minimum Int64 value. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最小的 Decimal 值。Invokes a transform function on each element of a sequence and returns the minimum nullable Decimal value. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最小的 Double 值。Invokes a transform function on each element of a sequence and returns the minimum nullable Double value. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最小的 Int32 值。Invokes a transform function on each element of a sequence and returns the minimum nullable Int32 value. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最小的 Int64 值。Invokes a transform function on each element of a sequence and returns the minimum nullable Int64 value. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
对序列中的每个元素调用转换函数,并返回可以为 null 的最小的 Single 值。Invokes a transform function on each element of a sequence and returns the minimum nullable Single value. |
| Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
对序列中的每个元素调用转换函数,并返回最小的 Single 值。Invokes a transform function on each element of a sequence and returns the minimum Single value. |
| Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
对序列中的每个元素调用转换函数,并返回最小结果值。Invokes a transform function on each element of a generic sequence and returns the minimum resulting value. |
| OfType<TResult>(IEnumerable) |
根据指定类型筛选 IEnumerable 的元素。Filters the elements of an IEnumerable based on a specified type. |
| OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
根据键按升序对序列的元素进行排序。Sorts the elements of a sequence in ascending order according to a key. |
| OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
使用指定的比较器按升序对序列的元素进行排序。Sorts the elements of a sequence in ascending order by using a specified comparer. |
| OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
根据键按降序对序列的元素进行排序。Sorts the elements of a sequence in descending order according to a key. |
| OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
使用指定的比较器按降序对序列的元素排序。Sorts the elements of a sequence in descending order by using a specified comparer. |
| Prepend<TSource>(IEnumerable<TSource>, TSource) |
向序列的开头添加值。Adds a value to the beginning of the sequence. |
| Reverse<TSource>(IEnumerable<TSource>) |
反转序列中元素的顺序。Inverts the order of the elements in a sequence. |
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
将序列中的每个元素投影到新表单。Projects each element of a sequence into a new form. |
| Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>) |
通过合并元素的索引,将序列的每个元素投影到新窗体中。Projects each element of a sequence into a new form by incorporating the element's index. |
| SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>) |
将序列的每个元素投影到 IEnumerable<T> 并将结果序列合并为一个序列。Projects each element of a sequence to an IEnumerable<T> and flattens the resulting sequences into one sequence. |
| SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>) |
将序列的每个元素投影到 IEnumerable<T> 并将结果序列合并为一个序列。Projects each element of a sequence to an IEnumerable<T>, and flattens the resulting sequences into one sequence. 每个源元素的索引用于该元素的投影表。The index of each source element is used in the projected form of that element. |
| SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
将序列的每个元素投影到 IEnumerable<T>,并将结果序列合并为一个序列,并对其中每个元素调用结果选择器函数。Projects each element of a sequence to an IEnumerable<T>, flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. |
| SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>) |
将序列的每个元素投影到 IEnumerable<T>,并将结果序列合并为一个序列,并对其中每个元素调用结果选择器函数。Projects each element of a sequence to an IEnumerable<T>, flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. 每个源元素的索引用于该元素的中间投影表。The index of each source element is used in the intermediate projected form of that element. |
| SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
通过使用相应类型的默认相等比较器对序列的元素进行比较,以确定两个序列是否相等。Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type. |
| SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
通过使用指定的 IEqualityComparer<T> 来比较两个序列的元素,以确定这两个序列是否相等。Determines whether two sequences are equal by comparing their elements by using a specified IEqualityComparer<T>. |
| Single<TSource>(IEnumerable<TSource>) |
返回序列的唯一元素;如果该序列并非恰好包含一个元素,则会引发异常。Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. |
| Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
返回序列中满足指定条件的唯一元素;如果有多个这样的元素存在,则会引发异常。Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. |
| SingleOrDefault<TSource>(IEnumerable<TSource>) |
返回序列中的唯一元素;如果该序列为空,则返回默认值;如果该序列包含多个元素,此方法将引发异常。Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. |
| SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
返回序列中满足指定条件的唯一元素;如果这类元素不存在,则返回默认值;如果有多个元素满足该条件,此方法将引发异常。Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. |
| Skip<TSource>(IEnumerable<TSource>, Int32) |
跳过序列中指定数量的元素,然后返回剩余的元素。Bypasses a specified number of elements in a sequence and then returns the remaining elements. |
| SkipLast<TSource>(IEnumerable<TSource>, Int32) |
返回一个新的可枚举集合,它包含 |
| SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
如果指定的条件为 true,则跳过序列中的元素,然后返回剩余的元素。Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. |
| SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
如果指定的条件为 true,则跳过序列中的元素,然后返回剩余的元素。Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. 将在谓词函数的逻辑中使用元素的索引。The element's index is used in the logic of the predicate function. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
计算 Decimal 值序列的总和,这些值可通过对输入序列中的每个元素调用转换函数获得。Computes the sum of the sequence of Decimal values that are obtained by invoking a transform function on each element of the input sequence. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
计算 Double 值序列的总和,这些值可通过对输入序列中的每个元素调用转换函数获得。Computes the sum of the sequence of Double values that are obtained by invoking a transform function on each element of the input sequence. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
计算 Int32 值序列的总和,这些值可通过对输入序列中的每个元素调用转换函数获得。Computes the sum of the sequence of Int32 values that are obtained by invoking a transform function on each element of the input sequence. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
计算 Int64 值序列的总和,这些值可通过对输入序列中的每个元素调用转换函数获得。Computes the sum of the sequence of Int64 values that are obtained by invoking a transform function on each element of the input sequence. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
计算可以为 null 的 Decimal 值序列的总和,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the sum of the sequence of nullable Decimal values that are obtained by invoking a transform function on each element of the input sequence. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
计算可以为 null 的 Double 值序列的总和,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the sum of the sequence of nullable Double values that are obtained by invoking a transform function on each element of the input sequence. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
计算可以为 null 的 Int32 值序列的总和,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the sum of the sequence of nullable Int32 values that are obtained by invoking a transform function on each element of the input sequence. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
计算可以为 null 的 Int64 值序列的总和,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the sum of the sequence of nullable Int64 values that are obtained by invoking a transform function on each element of the input sequence. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
计算可以为 null 的 Single 值序列的总和,这些值可通过对输入序列的每个元素调用转换函数获得。Computes the sum of the sequence of nullable Single values that are obtained by invoking a transform function on each element of the input sequence. |
| Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
计算 Single 值序列的总和,这些值可通过对输入序列中的每个元素调用转换函数获得。Computes the sum of the sequence of Single values that are obtained by invoking a transform function on each element of the input sequence. |
| Take<TSource>(IEnumerable<TSource>, Int32) |
从序列的开头返回指定数量的相邻元素。Returns a specified number of contiguous elements from the start of a sequence. |
| TakeLast<TSource>(IEnumerable<TSource>, Int32) |
返回一个新的可枚举集合,它包含 |
| TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
只要指定的条件为 true,就会返回序列的元素。Returns elements from a sequence as long as a specified condition is true. |
| TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
只要指定的条件为 true,就会返回序列的元素。Returns elements from a sequence as long as a specified condition is true. 将在谓词函数的逻辑中使用元素的索引。The element's index is used in the logic of the predicate function. |
| ToArray<TSource>(IEnumerable<TSource>) |
从 IEnumerable<T> 中创建数组。Creates an array from a IEnumerable<T>. |
| ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
根据指定的键选择器函数,从 IEnumerable<T> 创建一个 Dictionary<TKey,TValue>。Creates a Dictionary<TKey,TValue> from an IEnumerable<T> according to a specified key selector function. |
| ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
根据指定的键选择器函数和键比较器,从 IEnumerable<T> 创建一个 Dictionary<TKey,TValue>。Creates a Dictionary<TKey,TValue> from an IEnumerable<T> according to a specified key selector function and key comparer. |
| ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
根据指定的键选择器和元素选择器函数,从 IEnumerable<T> 创建一个 Dictionary<TKey,TValue>。Creates a Dictionary<TKey,TValue> from an IEnumerable<T> according to specified key selector and element selector functions. |
| ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
根据指定的键选择器函数、比较器和元素选择器函数,从 IEnumerable<T> 创建一个 Dictionary<TKey,TValue>。Creates a Dictionary<TKey,TValue> from an IEnumerable<T> according to a specified key selector function, a comparer, and an element selector function. |
| ToHashSet<TSource>(IEnumerable<TSource>) |
从 IEnumerable<T> 创建一个 HashSet<T>。Creates a HashSet<T> from an IEnumerable<T>. |
| ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>) |
使用 |
| ToList<TSource>(IEnumerable<TSource>) |
从 IEnumerable<T> 创建一个 List<T>。Creates a List<T> from an IEnumerable<T>. |
| ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
根据指定的键选择器函数,从 IEnumerable<T> 创建一个 Lookup<TKey,TElement>。Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to a specified key selector function. |
| ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
根据指定的键选择器函数和键比较器,从 IEnumerable<T> 创建一个 Lookup<TKey,TElement>。Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to a specified key selector function and key comparer. |
| ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>) |
根据指定的键选择器和元素选择器函数,从 IEnumerable<T> 创建一个 Lookup<TKey,TElement>。Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to specified key selector and element selector functions. |
| ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>) |
根据指定的键选择器函数、比较器和元素选择器函数,从 IEnumerable<T> 创建一个 Lookup<TKey,TElement>。Creates a Lookup<TKey,TElement> from an IEnumerable<T> according to a specified key selector function, a comparer and an element selector function. |
| Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) |
通过使用默认的相等比较器,生成两个序列的并集。Produces the set union of two sequences by using the default equality comparer. |
| Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
通过使用指定的 IEqualityComparer<T> 生成两个序列的并集。Produces the set union of two sequences by using a specified IEqualityComparer<T>. |
| Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
基于谓词筛选值序列。Filters a sequence of values based on a predicate. |
| Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
基于谓词筛选值序列。Filters a sequence of values based on a predicate. 将在谓词函数的逻辑中使用每个元素的索引。Each element's index is used in the logic of the predicate function. |
| Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>) |
使用两个指定序列中的元素生成元组序列。Produces a sequence of tuples with elements from the two specified sequences. |
| Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>) |
将指定函数应用于两个序列的对应元素,以生成结果序列。Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results. |
| AsParallel(IEnumerable) |
启用查询的并行化。Enables parallelization of a query. |
| AsParallel<TSource>(IEnumerable<TSource>) |
启用查询的并行化。Enables parallelization of a query. |
| AsQueryable(IEnumerable) |
将 IEnumerable 转换为 IQueryable。Converts an IEnumerable to an IQueryable. |
| AsQueryable<TElement>(IEnumerable<TElement>) |
将泛型 IEnumerable<T> 转换为泛型 IQueryable<T>。Converts a generic IEnumerable<T> to a generic IQueryable<T>. |
| Ancestors<T>(IEnumerable<T>) |
返回元素集合,其中包含源集合中每个节点的上级。Returns a collection of elements that contains the ancestors of every node in the source collection. |
| Ancestors<T>(IEnumerable<T>, XName) |
返回经过筛选的元素集合,其中包含源集合中每个节点的上级。Returns a filtered collection of elements that contains the ancestors of every node in the source collection. 集合中仅包括具有匹配 XName 的元素。Only elements that have a matching XName are included in the collection. |
| DescendantNodes<T>(IEnumerable<T>) |
返回源集合中每个文档和元素的子代节点的集合。Returns a collection of the descendant nodes of every document and element in the source collection. |
| Descendants<T>(IEnumerable<T>) |
返回元素集合,其中包含源集合中每个元素和文档的子代元素。Returns a collection of elements that contains the descendant elements of every element and document in the source collection. |
| Descendants<T>(IEnumerable<T>, XName) |
返回经过筛选的元素集合,其中包含源集合中每个元素和文档的子代元素。Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. 集合中仅包括具有匹配 XName 的元素。Only elements that have a matching XName are included in the collection. |
| Elements<T>(IEnumerable<T>) |
返回源集合中每个元素和文档的子元素的集合。Returns a collection of the child elements of every element and document in the source collection. |
| Elements<T>(IEnumerable<T>, XName) |
返回源集合中经过筛选的每个元素和文档的子元素集合。Returns a filtered collection of the child elements of every element and document in the source collection. 集合中仅包括具有匹配 XName 的元素。Only elements that have a matching XName are included in the collection. |
| InDocumentOrder<T>(IEnumerable<T>) |
返回节点集合(其中包含源集合中的所有节点),并按文档顺序排列。Returns a collection of nodes that contains all nodes in the source collection, sorted in document order. |
| Nodes<T>(IEnumerable<T>) |
返回源集合中每个文档和元素的子节点集合。Returns a collection of the child nodes of every document and element in the source collection. |
| Remove<T>(IEnumerable<T>) |
将源集合中的每个节点从其父节点中移除。Removes every node in the source collection from its parent node. |
适用于
线程安全性
对于匹配的操作,筛选器表是线程安全的;但对于修改,不是线程安全的。Filter tables are thread-safe with respect to matching operations, but are not thread-safe with respect to modification. 访问筛选器表的线程应由 ReaderWriterLock 或类似的锁定语义来进行同步。Threads that access a filter table should be synchronized by the ReaderWriterLock or similar locking semantic. 使用此锁定使筛选器表可以同时运行多个读入操作,例如匹配操作;不过,若要写入筛选器表(例如添加筛选器),则线程必须等待独占锁。This lock allows multiple reads of a filter table (for example, a match operation) to run simultaneously, but in order to write to a filter table (for example, adding a filter), a thread must wait for an exclusive lock.
当将筛选器添加到表时,完成所有编译。All compilation is done when filters are added to the table. 如果您提前创建筛选器表,并且始终没有编辑它,则在匹配过程中不需要锁定。If you create a filter table in advance, and never edit it, locking is not necessary during a match.