在.Net中进行集合运算(使用 Iesi.Collections.dll)
来源:互联网 发布:黛安芬淘宝旗舰店真假 编辑:程序博客网 时间:2024/06/05 01:04
由于.NET框架本身没有提供集合运算功能,在使用这方面的功能时,我们可以借助第三方的类库来实现。在NHibernate 框架中有个Iesi.Collection.dll,这个类库提供了集合运算功能,并且支持泛型。
功能: 主要是取得2个集合里,相同、相异、联集的部份。
例子:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Iesi.Collections.Generic;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ISet<string> Girls = new HashedSet<string>();
Girls.Add("Christine");
Girls.Add("Eva");
Girls.Add("Jean");
Girls.Add("Novia");
Girls.Add("Winnie");
ISet<string> PMs = new HashedSet<string>();
PMs.Add("Eva");
PMs.Add("Novia");
PMs.Add("Vincent");
PMs.Add("Williams");
PMs.Add("Winnie");
ISet<string> GirlPMs = Girls.Intersect(PMs);
Response.Write("是女生且是PM: <br />");
foreach (string s in GirlPMs) {
Response.Write(s + "<br />");
}
Response.Write("<br />");
ISet<string> GirlNotPMs = Girls.Minus(PMs);
Response.Write("是女生且不是PM: <br />");
foreach (string s in GirlNotPMs) {
Response.Write(s + "<br />");
}
Response.Write("<br />");
ISet<string> GirlOrPMs = Girls.Union(PMs);
Response.Write("是女生或是PM: <br />");
foreach (string s in GirlOrPMs) {
Response.Write(s + "<br />");
}
Response.Write("<br />");
ISet<string> NotMatch = Girls.ExclusiveOr(PMs);
Response.Write("是女生但不是PM,或是PM但不是女生: <br />");
foreach (string s in NotMatch) {
Response.Write(s + "<br />");
}
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Iesi.Collections.Generic;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ISet<string> Girls = new HashedSet<string>();
Girls.Add("Christine");
Girls.Add("Eva");
Girls.Add("Jean");
Girls.Add("Novia");
Girls.Add("Winnie");
ISet<string> PMs = new HashedSet<string>();
PMs.Add("Eva");
PMs.Add("Novia");
PMs.Add("Vincent");
PMs.Add("Williams");
PMs.Add("Winnie");
ISet<string> GirlPMs = Girls.Intersect(PMs);
Response.Write("是女生且是PM: <br />");
foreach (string s in GirlPMs) {
Response.Write(s + "<br />");
}
Response.Write("<br />");
ISet<string> GirlNotPMs = Girls.Minus(PMs);
Response.Write("是女生且不是PM: <br />");
foreach (string s in GirlNotPMs) {
Response.Write(s + "<br />");
}
Response.Write("<br />");
ISet<string> GirlOrPMs = Girls.Union(PMs);
Response.Write("是女生或是PM: <br />");
foreach (string s in GirlOrPMs) {
Response.Write(s + "<br />");
}
Response.Write("<br />");
ISet<string> NotMatch = Girls.ExclusiveOr(PMs);
Response.Write("是女生但不是PM,或是PM但不是女生: <br />");
foreach (string s in NotMatch) {
Response.Write(s + "<br />");
}
}
}
运行结果:
是女生且是PM:
Eva
Novia
Winnie
是女生且不是PM:
Christine
Jean
是女生或是PM:
Christine
Eva
Jean
Novia
Winnie
Vincent
Williams
是女生但不是PM,或是PM但不是女生:
Christine
Williams
Jean
Vincent
Eva
Novia
Winnie
是女生且不是PM:
Christine
Jean
是女生或是PM:
Christine
Eva
Jean
Novia
Winnie
Vincent
Williams
是女生但不是PM,或是PM但不是女生:
Christine
Williams
Jean
Vincent
补充:
1. 如果顺序是重要的,那 HashedSet 可以改成 SortedSet
2. 如果用SortedSet, 集合里面的元素必需继承IComparable接口3. 更详细的介绍可参考 Add Support for "Set" Collections to .NET
- 在.Net中进行集合运算(使用 Iesi.Collections.dll)
- 在.Net中进行集合运算(使用 Iesi.Collections.dll)
- 在.Net中进行集合运算(使用 Iesi.Collections.dll)
- 在.Net中进行集合运算(使用 Iesi.Collections.dll)
- 使用 Iesi.Collections.dll
- Iesi.Collections.dll的功能介绍
- 使用Collections.sort对集合进行排序。
- R语言--在R语言中进行集合运算
- 在ASP.NET中使用Ajax.dll
- Java 使用Collections.reverse对list集合进行降序排序
- 在JAVA中,使用BigDecimal进行大数据运算
- 在ASP.NET中使用Quartz.net进行工作调度
- 在ASP.NET中使用Quartz.net进行工作调度
- 在ASP.NET中使用Quartz.net进行工作调度
- 在ASP.NET中使用Quartz.net进行工作调度
- 在ASP.NET中使用Quartz.net进行工作调度
- 在SQL Server中使用CLR调用.net的dll
- java.util.Collections类使用,查找集合中重复数据
- 利用宏生成FieldCatalog.
- 万维网之父:语义网或将成为Google终结者
- 算法如功夫——C++ 用递归函数计算n的阶乘n!
- oralc 中图片的存储与读取
- QT相关名词说明
- 在.Net中进行集合运算(使用 Iesi.Collections.dll)
- 牛!Actionscript做的人脸控制
- GRUB命令选择引导操作系统
- MP3/MP4产业的魅族模式和纽曼模式
- 算法如功夫——C++输入两个数求它们的最大公约数
- 学习.net compact framework
- 写下你职业生涯中最难以忘怀的误操作
- 链接错误LNK2001的常见原因
- 思考5分钟,能自己解决的,绝不问别人