借助第三方的类库在.Net中进行集合运算 - C#

2009-12-20 18:18:21 作者:网络 来源:网络编程 浏览次数:0 网友评论 0



    



                由于.NET框架本身没有提供集合运算功能,在使用这方面的功能时,我们可以借助第三方的类库来实现。在NHibernate 框架中有个Iesi.Collection.dll,这个类库提供了集合运算功能,并且支持泛型。     ...

由于.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%26lt;string%26gt; Girls = new HashedSet%26lt;string%26gt;();
Girls.Add(\"Christine\");
Girls.Add(\"Eva\");
Girls.Add(\"Jean\");
Girls.Add(\"Novia\");
Girls.Add(\"Winnie\");

ISet%26lt;string%26gt; PMs = new HashedSet%26lt;string%26gt;();
PMs.Add(\"Eva\");
PMs.Add(\"Novia\");
PMs.Add(\"Vincent\");
PMs.Add(\"Williams\");
PMs.Add(\"Winnie\");

ISet%26lt;string%26gt; GirlPMs = Girls.Intersect(PMs);
Response.Write(\"是女生且是PM: %26lt;br /%26gt;\");
foreach (string s in GirlPMs) {
Response.Write(s + \"%26lt;br /%26gt;\"); [Page]
}

Response.Write(\"%26lt;br /%26gt;\");
ISet%26lt;string%26gt; GirlNotPMs = Girls.Minus(PMs);
Response.Write(\"是女生且不是PM: %26lt;br /%26gt;\");
foreach (string s in GirlNotPMs) {
Response.Write(s + \"%26lt;br /%26gt;\");
}

Response.Write(\"%26lt;br /%26gt;\");
ISet%26lt;string%26gt; GirlOrPMs = Girls.Union(PMs);
Response.Write(\"是女生或是PM: %26lt;br /%26gt;\");
foreach (string s in GirlOrPMs) {
Response.Write(s + \"%26lt;br /%26gt;\");
}

Response.Write(\"%26lt;br /%26gt;\");
ISet%26lt;string%26gt; NotMatch = Girls.ExclusiveOr(PMs);
Response.Write(\"是女生但不是PM,或是PM但不是女生: %26lt;br /%26gt;\");
foreach (string s in NotMatch) {
Response.Write(s + \"%26lt;br /%26gt;\");
}

}
}

运行结果:

是女生且是PM:
Eva
Novia
Winnie

是女生且不是PM:
Christine
Jean

是女生或是PM:
Christine
Eva
Jean
Novia
Winnie [Page]
Vincent
Williams

是女生但不是PM,或是PM但不是女生:
Christine
Williams
Jean
Vincent


补充:
1. 如果顺序是重要的,那 HashedSet 可以改成 SortedSet
2. 如果用SortedSet, 集合里面的元素必需继承IComparable接口

借助第三方的类库在.Net中进行集合运算 - C#是www1098t.com的会员在网络编程最新发表的,同时也欢迎你就借助第三方的类库在.Net中进行集合运算 - C#提问.欢迎来到我们的服务器编程网站查询的文章.

相关文章

[错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]

  • 验证码:

最新图片文章

最新文章