using
system;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.reflection.emit;
using
nunit.framework;
namespace
sastest
}public
intadd(t item)
else
return
list.count -1
;}public
t this
[int
index]
setif(!
object
.referenceequals(tmp, value))
//如果沒有重複並且替換後的元素和原來的元素不是同乙個物件,要為該元素新增屬性修改檢查事件
value.checkerevent
+=new
calluniquecheck(item_checkerevent);}}
private
void
item_checkerevent(t item, action
<
t>
action)
}private
bool
contains(t item,
bool
edit)
//檢查修改後的集合是否有重複 , 對於新增元素,在新增前檢查是否已經有乙個同樣的。如果是修改, 則先修改再看修改後是否有兩個相同的元素。}if
(count
<=0)
result
=false
;else
if(count
>0)
return
result;
}private
static
void
copy(t source, t target)
//輔助方法,拷備屬性
catch
(exception)}}
public
delegate
void
calluniquecheck(t item, action
<
t>
action);
public
abstract
class
uniqueitem
else
//如果是為空表明現在這個物件還沒有新增到集合中}}
#region
ilist成員
public
intindexof(t item)
public
void
insert(
intindex, t item)
else
}public
void
removeat(
intindex)
#endregion
#region
icollection成員
void
icollection
<
t>
.add(t item)
public
void
clear()
public
bool
contains(t item)
public
void
copyto(t array,
intarrayindex)
public
bool
isreadonly
}public
bool
remove(t item)
#endregion
#region
ienumerable成員
public
ienumerator
<
t>
getenumerator()
#endregion
#region
ienumerable 成員
system.collections.ienumerator system.collections.ienumerable.getenumerator()
#endregion
}public
class
public
notuniqueexception()
: base("
元素重複")
public
notuniqueexception(
string
message)
: base
(message)
}#endregion
#region
測試**
[testfixture]
public
class
tester
);list.add(
newmypoint );
list.add(
newmypoint );
list.add(
newmypoint );
assert.areequal(
3, list.count);
//衝突時添不進相同元素
}[test]
[expectedexception(
"sastest.notuniqueexception")]
public
void
updatepropertytest()
//修改元素屬性,使元素重複
);list.add(
newmypoint );
list.add(
newmypoint );
list[
0].x =2
;assert.areequal(
1, list[
0].x);
//衝突時修改不了
list[
0].x =10
;assert.areequal(
10, list[
0].x);
//不衝突時可以修改
}[test]
[expectedexception(
"sastest.notuniqueexception")]
public
void
updatetest()
//修改集合元素,使元素重複
);list.add(
newmypoint );
list.add(
newmypoint );
list[0]
=new
mypoint ;
assert.areequal(
2, list[
0].y);
list[0]
=new
mypoint ;
assert.areequal(
10, list[
0].x);
assert.areequal(
10, list[
0].y);}}
public
class
mypoint : uniquelist
<
mypoint
>
.uniqueitem
set}
private
int_y;
public
inty
set}
public
override
bool
equals(
object
obj)
}#endregion
}
1748 唯一元素的和
給你乙個整數陣列 nums 陣列中唯一元素是那些只出現 恰好一次 的元素。請你返回 nums 中唯一元素的 和 示例 1 1 nums.length 100 1 nums i 100 1 暴力法 一看到這個題目,首先就想到暴力法遍歷,每次定位乙個元素,就遍歷其餘看是否有相等的元素,如果有,加到結果中...
LeetCode 1748 唯一元素的和
給你乙個整數陣列 nums 陣列中唯一元素是那些只出現恰好一次的元素。請你返回 nums 中唯一元素的和。示例 1 輸入 nums 1 2,3 2 輸出 4 解釋 唯一元素為 1,3 和為 4 示例 2 輸入 nums 1 1,1 1,1 輸出 0 解釋 沒有唯一元素,和為 0 示例 3 輸入 nu...
Selenium2 0功能測試之唯一元素的定位
頁面元素的定位可以說是webdriver中最核心的內容了,我們定位乙個元素的目的主要有 操作元素,獲取該元素的屬性,獲取元素的text以及獲取元素的數量,webdriver 為我們提供了以下幾種方法來幫我們定位乙個 web元素 通過元素的id獲取 通過元素的name獲取 通過元素的tag name ...