C 去掉List重複元素的方法

2022-01-12 13:07:48 字數 2128 閱讀 4160

因為用到list,要去除重複資料,嘗試了幾種方法。記錄於此。。。

測試資料:

listli1 = new list;

listli2 = new list;

listli3 = new list;

listli4 = new list;

方法一:

hashseths = new hashset(li1); //此時已經去掉重複的資料儲存在hashset中
方法二:

for (int i = 0; i < li2.count; i++)  //外迴圈是迴圈的次數}}

方法三:

//把相同的用null代替。

for (int i = 0; i < li3.count; i++)}}

方法四:

//這方法跟上面的一樣,只是變了邏輯

for (int i = 0; i < li4.count - 1; i++)}}

}

最後輸出看結果

console.writeline("li1去除重複後的值為");

hs.tolist().foreach(item => console.writeline(item));

console.writeline("li2去除重複後的值為");

li2.foreach(item => console.writeline(item));

console.writeline("li3去除重複後的值為");

li3.foreach(item => console.writeline(item));

console.writeline("li4去除重複後的值為");

null我沒去掉。用的時候去掉即可。

當然。還有許多辦法。比如linq  distinct  等等都可以,看看網上的這個例子:去掉modellist中title重複的內容,不區分大小寫

class program

,new model() ,

new model(),

new model() ,

new model()

};console.read();}}

public class model

public string title

}

解決方案一:這裡比較的前提是物件的雜湊**相等。否則不會比較,因為雜湊**不相等。兩個物件顯然不相等

//定義乙個類繼承iequalitycomparer介面

public class modelcomparer : iequalitycomparer

public int gethashcode(model obj)

}

呼叫:

modellist = modellist.distinct(new modelcomparer()).tolist();
解決方案二:

var title = modellist.groupby(m => m.title.tolower().trim()).select(m => new );

modellist = modellist.where(m => title.select(mo => mo.id).contains(m.id)).tolist();

foreach (var item in modellist)

當然。如果你僅僅比較兩個值是否相等。

listli1 = new list;

li1 = li1.distinct().tolist();

python 去掉list中的重複元素

def f1 seq not order preserving set map set.setitem seq,return set.keys def f2 seq order preserving checked for e in seq if e not in checked return ch...

Go切片去掉重複元素

1.go切片去掉重複元素 如果傳入的是string型別 slice去重 func removerepbymap slc string string 存放返回的不重複切片 tempmap map string byte 存放不重複主鍵 for e range slc return result 如果傳...

java刪除list中重複元素的方法

刪除arraylist中重複元素 public static void removeduplicate list list system.out.println list 方法二 通過hashset剔除 刪除arraylist中重複元素 public static void removeduplic...