回圈判斷把list中重復資料去掉 放在另一個list中。
uj5u.com熱心網友回復:
要看list型別是物件還是單一資料型別單一資料型別直接比較是否重復
物件,需要另外寫compare
uj5u.com熱心網友回復:
public static class ObjectExtensions
{
public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
{
HashSet<TKey> seenKeys = new HashSet<TKey>();
foreach (TSource element in source)
{
if (seenKeys.Add(keySelector(element)))
{
yield return element;
}
}
}
}
/// <summary>
/// 回傳題目資料
/// </summary>
[Serializable]
public class QuestionResult
{
/// <summary>
/// 編號
/// </summary>
public long Id { get; set; }
/// <summary>
/// 題目內容
/// </summary>
public string Title { get; set; }
}
list.DistinctBy(e => new { e.Id }).ToList();
uj5u.com熱心網友回復:
寫這個拓展他不香嗎uj5u.com熱心網友回復:
List<int> List = new List<int>() { 1, 2, 3, 12, 2, 3 };
List<int> NewList = new List<int>();
//去重
//var NewList = List.Distinct();
//回圈去重
foreach (var item in List)
{
if (!NewList.Contains(item))
{
NewList.Add(item);
}
}
uj5u.com熱心網友回復:
舉例 list.Select(p => p.name).Distinct().ToList(); //去除name重復的list資料uj5u.com熱心網友回復:
這是個基本問題,需要首先明白什么是重復的資料。參考型別和值型別的處理是不一樣的。參考型別只要值相同就認為是重復的,參考型別必須是同一物件參考才是重復的。詳見 == 與 Equals 的聯系和區別,把這個弄明白了,其他的就好辦了,uj5u.com熱心網友回復:
換個字典版本的:
var list = new List<int>() { 1, 1, 2, 2, 2, 5, 8, 5, 5, 8, 5, 5, 48, 85, 5, 54, 85 };
Dictionary<int,int> dic=new Dictionary<int, int>();
foreach (var i in list)
{
dic[i] = i;
}
var newList = dic.Keys;
foreach (var i in newList)
{
Console.WriteLine(i);
}
uj5u.com熱心網友回復:
第七行可以輸出成List<T>: var newList = dic.Keys.ToList();
uj5u.com熱心網友回復:
感謝各位,想問一下我的這個list_是List<String>型的判斷包含時可以判斷是否包含UserKey要是List<UserInfo>我要怎判斷是否包含UserKey呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/254214.html
標籤:C#
