zoukankan
html css js c++ java
.Net 集合类
.Net 类库里没有集合类的吗?
自己写了个,大家提提意见~~
using
System;
using
System.Collections;
namespace
CN.Teddy.Util.Collections
{
/**/
///
<summary>
///
ISimpleSet 的摘要说明。
///
</summary>
public
interface
ISimpleSet : ICollection, ICloneable
{
bool
Contains(
object
obj);
bool
BelongTo(SimpleSet set2);
void
Add(
object
obj);
void
Remove(
object
obj);
void
Clear();
SimpleSet Intersect(SimpleSet set2);
SimpleSet Union(SimpleSet set2);
SimpleSet Minus(SimpleSet set2);
}
}
using
System;
using
System.Collections;
namespace
CN.Teddy.Util.Collections
{
/**/
///
<summary>
///
SimpleSet 的摘要说明。
///
</summary>
public
class
SimpleSet : ISimpleSet
{
Private members
#region
Private members
private
ArrayList _Data
=
null
;
private
IEqualHandler _EqualHandler
=
null
;
private
void
InitPrivateMembers()
{
_Data
=
new
ArrayList();
if
(_EqualHandler
==
null
)
{
_EqualHandler
=
new
EqualHandler();
}
}
#endregion
Public Members
#region
Public Members
public
object
this
[
int
index]
{
get
{
return
_Data[index];
}
}
#endregion
Constructors
#region
Constructors
public
SimpleSet()
{
InitPrivateMembers();
}
public
SimpleSet(IEqualHandler eh)
{
_EqualHandler
=
eh;
InitPrivateMembers();
}
#endregion
ICollection 成员
#region
ICollection 成员
public
bool
IsSynchronized
{
get
{
return
_Data.IsSynchronized;
}
}
public
int
Count
{
get
{
return
_Data.Count;
}
}
public
void
CopyTo(Array array,
int
index)
{
_Data.CopyTo(array, index);
}
public
object
SyncRoot
{
get
{
return
_Data.SyncRoot;
}
}
#endregion
IEnumerable 成员
#region
IEnumerable 成员
public
IEnumerator GetEnumerator()
{
return
_Data.GetEnumerator();
}
#endregion
ISimpleSet 成员
#region
ISimpleSet 成员
public
bool
Contains(
object
obj)
{
foreach
(
object
item
in
_Data)
{
if
(_EqualHandler.Equal(item, obj))
{
return
true
;
}
}
return
false
;
}
public
bool
BelongTo(CN.Teddy.Util.Collections.SimpleSet set2)
{
bool
ret
=
true
;
foreach
(
object
item
in
_Data)
{
if
(
!
set2.Contains(item))
{
ret
=
false
;
break
;
}
}
return
ret;
}
public
void
Add(
object
obj)
{
if
(
!
this
.Contains(obj))
{
_Data.Add(obj);
}
}
public
void
Remove(
object
obj)
{
foreach
(
object
item
in
_Data)
{
if
(_EqualHandler.Equal(obj, item))
{
_Data.Remove(item);
break
;
}
}
}
public
void
Clear()
{
_Data.Clear();
}
public
CN.Teddy.Util.Collections.SimpleSet Intersect(CN.Teddy.Util.Collections.SimpleSet set2)
{
SimpleSet ret
=
new
SimpleSet(_EqualHandler);
foreach
(
object
item
in
_Data)
{
if
(set2.Contains(item))
{
ret.Add(item);
}
}
return
ret;
}
public
CN.Teddy.Util.Collections.SimpleSet Union(CN.Teddy.Util.Collections.SimpleSet set2)
{
SimpleSet ret
=
this
.Clone()
as
SimpleSet;
foreach
(
object
item
in
set2)
{
ret.Add(item);
}
return
ret;
}
public
CN.Teddy.Util.Collections.SimpleSet Minus(CN.Teddy.Util.Collections.SimpleSet set2)
{
SimpleSet ret
=
this
.Clone()
as
SimpleSet;
foreach
(
object
item
in
set2)
{
if
(ret.Contains(item))
{
ret.Remove(item);
}
}
return
ret;
}
#endregion
ICloneable 成员
#region
ICloneable 成员
public
object
Clone()
{
SimpleSet ret
=
new
SimpleSet(_EqualHandler);
foreach
(
object
item
in
_Data)
{
ret.Add(item);
}
return
ret;
}
#endregion
}
}
using
System;
namespace
CN.Teddy.Util.Collections
{
/**/
///
<summary>
///
IEqualHandler 的摘要说明。
///
</summary>
public
interface
IEqualHandler
{
bool
Equal(
object
obj1,
object
obj2);
}
}
using
System;
namespace
CN.Teddy.Util.Collections
{
/**/
///
<summary>
///
EqualHandler 的摘要说明。
///
</summary>
public
class
EqualHandler : IEqualHandler
{
IEqualHandler 成员
#region
IEqualHandler 成员
public
bool
Equal(
object
obj1,
object
obj2)
{
//
TODO: 添加 EqualHandler.Equal 实现
return
obj1.Equals(obj2);
}
#endregion
}
}
查看全文
相关阅读:
memcached事故
总算会用sphinx生成文档了
python tip
抓包工具wireshark
狗日的用户体验
python tip
pymmseg
memcached事故
windwos序列号
7z fromat on ubuntu&replace my fujishu electric fan
原文地址:https://www.cnblogs.com/teddyma/p/102357.html
最新文章
pymssql under ubuntu
统计.txt文件个数
ictclaspython 2009使用大捷
pymssql under ubuntu
周六日活动小记
pymssql的安装完整记录
pymssql under ubuntu
C++风格的转型运算符小结
关于memcached的问题
gnome刻录工具brasero
热门文章
总算会用sphinx生成文档了
关于memcached的问题
redis安装
解压缩命令老忘记录一下
py引用父包
解压缩命令老忘记录一下
host
python tip
什么是 WinSCP
redis安装
Copyright © 2011-2022 走看看