📅  最后修改于: 2023-12-03 14:43:54.358000             🧑  作者: Mango
LINQ
,即 Language Integrated Query
,是一种在 C#
和 .NET
中使用的语言集成查询技术,它提供了一种简化、统一的方式来查询各种数据源,如 数据库
、XML
文件和 内存
中的集合等。
LINQ
支持许多操作,包括筛选、排序、组合、聚合等。其中之一是平等算子,它用于比较两个序列是否相等。
本文将介绍平等算子的用法和示例。
平等算子分为两种:SequenceEqual
和 SequenceEqual<T>
SequenceEqual
SequenceEqual
用于检查两个序列中的元素是否相等,并返回一个 bool
值。
public static bool SequenceEqual<TSource> (
this System.Collections.Generic.IEnumerable<TSource> first,
System.Collections.Generic.IEnumerable<TSource> second
);
该方法的参数分别为:第一个序列和第二个序列。如果这两个序列中的所有元素都相等(使用默认的相等比较器),则返回 true
,否则返回 false
。
示例代码:
int[] numbers1 = {1, 2, 3};
int[] numbers2 = {1, 2, 3};
bool equal = numbers1.SequenceEqual(numbers2); // true
SequenceEqual<T>
SequenceEqual<T>
方法与 SequenceEqual
方法类似,但它允许指定一个自定义的相等比较器,用于比较两个序列中的元素是否相等。该方法也返回一个 bool
值。
public static bool SequenceEqual<TSource> (
this System.Collections.Generic.IEnumerable<TSource> first,
System.Collections.Generic.IEnumerable<TSource> second,
System.Collections.Generic.IEqualityComparer<TSource> comparer
);
该方法的参数分别为:第一个序列、第二个序列和相等比较器。如果这两个序列中的所有元素都相等(使用指定的相等比较器),则返回 true
,否则返回 false
。
示例代码:
string[] words1 = {"foo", "bar", "baz"};
string[] words2 = {"FOO", "BAR", "BAZ"};
bool equal = words1.SequenceEqual(words2, StringComparer.OrdinalIgnoreCase); // true
上述内容介绍了 LINQ
中的平等算子 SequenceEqual
和 SequenceEqual<T>
的用法和示例。使用这些方法可以轻松比较两个序列中的元素是否相等。