因為用到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();
去除list集合中重複項的幾種方法
因為用到list,要去除重複資料,嘗試了幾種方法。記錄於此。測試資料 listli1 new list list li2 new list list li3 new list list li4 new list 方法一 hashseths new hashset li1 此時已經去掉重複的資料儲存在...
Linq 和 list集合 去除重複項
方法一 iqueryablelistnotice from news in base.cabindata.newscontents where news.flag 1 select news distinct 此種去除方法弊端 只要物件中有重複的字段都會去除,會比對物件中所有的字段。方法二 把lin...
去除List集合中的重複值
最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另乙個list集合,一種是用賦給set集合再返回給list集合。但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用set的特性進行去重又不打亂順序呢?試了一下,...