Linq 找出重複資料並標記
參考 https://stackoverflow.com/questions/18547354/c-sharp-linq-find-duplicates-in-list 之後依照需求調整
因為要將相同的資料全都找出來並標記,就不使用HashSet不標記第一筆的方法了
紀錄下最後使用的方法,所謂標記也只是很陽春地把值塞回另一個欄位去了:
public void MarkDuplicates<TSource, TKey>(IEnumerable<TSource> source, Func<TSource, TKey> selector, Action<TSource, TKey> markAct)
{
foreach (var item in source.GroupBy(x => selector(x)).Where(g => g.Count() > 1).SelectMany(g => g))
markAct(item, selector(item));
return;
}
標記出A+B重複:
標記出A+C重複: