唯一元素List UniqueList

2021-08-30 01:49:21 字數 3933 閱讀 4866

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 ...