交集:通过使用默认的相等比较器对值进行比较生成两个序列的交集
2008-12-23 11:15
573 查看
支持.net 3.5
语法:
public static IEnumerable<TSource> Intersect<TSource>(
this IEnumerable<TSource> first,
IEnumerable<TSource> second
)
输入序列中的元素的类型。
类型:System.Collections.Generic..::.IEnumerable<(Of <(TSource>)>)
一个 IEnumerable<(Of <(T>)>),将返回其也出现在 second 中的非重复元素。
second
类型:System.Collections.Generic..::.IEnumerable<(Of <(TSource>)>)
一个 IEnumerable<(Of <(T>)>),将返回其也出现在第一个序列中的非重复元素。
包含组成两个序列交集的元素的序列。
此方法通过使用延迟执行实现。即时返回值为一个对象,该对象存储执行操作所需的所有信息。只有通过直接调用对象的 GetEnumerator 方法或使用 Visual C# 中的 foreach(或 Visual Basic 中的 For Each)来枚举该对象时,才执行此方法表示的查询。
集 A 和集 B 的交集定义为包含同时出现在 A 和 B 中的所有元素的集,但不包含任何其他元素。
当枚举此方法返回的对象时,Intersect 将枚举 first,以收集该序列中的所有非重复元素。然后,枚举 second,从而标记那些同时出现在两个序列中的元素。最后,按收集顺序生成标记的元素。
使用默认的相等比较器 Default 对值进行比较。
集 A 和集 B 的交集定义为包含同时出现在 A 和 B 中的所有元素的集,但不包含任何其他元素。
下面的代码示例演示如何使用 Intersect<(Of <(TSource>)>)(IEnumerable<(Of <(TSource>)>), IEnumerable<(Of <(TSource>)>)) 返回同时出现在两个序列中的元素。
int[] id1 = { 44, 26, 92, 30, 71, 38 };
int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };
IEnumerable<int> both = id1.Intersect(id2);
foreach (int id in both)
Console.WriteLine(id);
/*
This code produces the following output:
26
30
*/
http://msdn.microsoft.com/zh-cn/library/bb460136.aspx
语法:
public static IEnumerable<TSource> Intersect<TSource>(
this IEnumerable<TSource> first,
IEnumerable<TSource> second
)
类型参数
TSource输入序列中的元素的类型。
参数
first类型:System.Collections.Generic..::.IEnumerable<(Of <(TSource>)>)
一个 IEnumerable<(Of <(T>)>),将返回其也出现在 second 中的非重复元素。
second
类型:System.Collections.Generic..::.IEnumerable<(Of <(TSource>)>)
一个 IEnumerable<(Of <(T>)>),将返回其也出现在第一个序列中的非重复元素。
返回值
类型:System.Collections.Generic..::.IEnumerable<(Of <(TSource>)>)包含组成两个序列交集的元素的序列。
此方法通过使用延迟执行实现。即时返回值为一个对象,该对象存储执行操作所需的所有信息。只有通过直接调用对象的 GetEnumerator 方法或使用 Visual C# 中的 foreach(或 Visual Basic 中的 For Each)来枚举该对象时,才执行此方法表示的查询。
集 A 和集 B 的交集定义为包含同时出现在 A 和 B 中的所有元素的集,但不包含任何其他元素。
当枚举此方法返回的对象时,Intersect 将枚举 first,以收集该序列中的所有非重复元素。然后,枚举 second,从而标记那些同时出现在两个序列中的元素。最后,按收集顺序生成标记的元素。
使用默认的相等比较器 Default 对值进行比较。
集 A 和集 B 的交集定义为包含同时出现在 A 和 B 中的所有元素的集,但不包含任何其他元素。
下面的代码示例演示如何使用 Intersect<(Of <(TSource>)>)(IEnumerable<(Of <(TSource>)>), IEnumerable<(Of <(TSource>)>)) 返回同时出现在两个序列中的元素。
int[] id1 = { 44, 26, 92, 30, 71, 38 };
int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };
IEnumerable<int> both = id1.Intersect(id2);
foreach (int id in both)
Console.WriteLine(id);
/*
This code produces the following output:
26
30
*/
http://msdn.microsoft.com/zh-cn/library/bb460136.aspx
相关文章推荐
- Distinct()-通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。
- Linq 对两个结果集中存在相等值进行比较后筛选生成两个序列的差集
- 使用Red Gate Sql Compare 数据库同步工具进行SQL Server的两个数据库的结构比较、同步
- LINQ 通过动态生成lambda表达式,实现根据指定属性名称对序列进行排序
- Facebook开源时间序列内存数据库Beringei,追求极致压缩率——如果是int根据大多数时间序列中的值与相邻数据点相比并没有显著的变化,只要使用XOR将当前值与先前值进行比较,然后存储发生变化的比特。最终,该算法将整个数据集至少压缩了90%
- 关于序列的使用,数据库中以自动生成的方式进行保存
- 「谷歌大脑」提出通过对长序列进行摘要提取,AI可自动生成「维基百科」
- C#使用Equals()方法比较两个对象是否相等的方法
- 使用Python进行文本信息的比较并生成HTML报告
- 使用VS进行打包程序解决生成两个文件的问题(压缩后只有一个exe)
- 两个时间进行比较 使用NSCalendar 日历类进行对比
- 快速比较两个uiimage是否相等防止使用原始dsdata造成界面卡顿问题
- 使用两个不同类型的数据进行加法计算时,使用异常处理语句捕获由于数据类型错误而出现的异常,发生生成错误。是否继续并运行上次的成功生成?
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- linux:使用comm命令比较两个文件:交集、差
- 使用Comparator进行两个Object的比较
- mybatis中使用if标签比较两个字符串是否相等
- mybatis中使用if标签比较两个字符串是否相等
- linux:使用comm命令比较两个文件:交集、差
- 2. 如果两个Integer的值相等,使用==进行判断的结果是否相等(常量池问题)?