91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何操作去重和排序

發布時間:2020-07-09 14:09:24 來源:億速云 閱讀:140 作者:Leah 欄目:編程語言

如何操作去重和排序?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。


去重

方法1:使用內置的distinct

代碼如下:

//方法1:使用默認的distinct方法//只能針對基元類型列表,對于自定義類型組合字段條件需要自定義相等比較器實現IEqualityComparer接口,比較麻煩var result1 = list.Distinct().ToList();

方法2:使用GroupBy

代碼如下:

//方法2:使用GroupByvar result2 = list.GroupBy(p => new { p.BunkCode, p.BunkPrice })
    .Select(p => p.First())
    .ToList();

方法3:使用自己擴展的DistinctBy方法

代碼如下:

//方法3:使用自己擴展的DistinctBy方法//利用HashSet的key不能重復的特性var result3 = list.DistinctBy(p => new { p.BunkCode, p.BunkPrice })
    .ToList();

完整代碼請參考:

/// <summary>/// 測試類型/// </summary>public class TestDistinctClass
{public int Id { get; set; }public string BunkCode { get; set; }public double BunkPrice { get; set; }
}/// <summary>/// 測試去重/// </summary>private static void TestDistinct()
{//數據源var list = new List<TestDistinctClass> 
    {new TestDistinctClass
        {
            Id= 1,
            BunkCode= "A",
            BunkPrice= 101},new TestDistinctClass
        {
            Id= 2,
            BunkCode= "B",
            BunkPrice= 102},new TestDistinctClass
        {
            Id= 3,
            BunkCode= "C",
            BunkPrice= 103},new TestDistinctClass
        {
            Id= 4,
            BunkCode= "D",
            BunkPrice= 104},new TestDistinctClass
        {
            Id= 5,
            BunkCode= "A",
            BunkPrice= 101}
    };//方法1:使用默認的distinct方法//只能針對基元類型列表,對于自定義類型組合字段條件需要自定義相等比較器實現IEqualityComparer接口,比較麻煩var result1 = list.Distinct().ToList();//方法2:使用GroupByvar result2 = list.GroupBy(p => new { p.BunkCode, p.BunkPrice })
        .Select(p => p.First())
        .ToList();//方法3:使用自己擴展的DistinctBy方法//利用HashSet的key不能重復的特性var result3 = list.DistinctBy(p => new { p.BunkCode, p.BunkPrice })
        .ToList();
}

同時,我把擴展方法也貼出來:

/// <summary>/// 擴展distinct/// </summary>/// <typeparam name="TSource"></typeparam>/// <typeparam name="TKey"></typeparam>/// <param name="source"></param>/// <param name="keySelector"></param>/// <returns></returns>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;
        }
    }
}

排序

至于排序,使用Linq提供的api就好了,如下圖:

如何操作去重和排序

看完上述內容,你們掌握如何操作去重和排序的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尚义县| 巨鹿县| 墨脱县| 芦溪县| 嘉善县| 山阳县| 万年县| 封丘县| 克什克腾旗| 吴旗县| 商水县| 邢台县| 博白县| 阳原县| 闽侯县| 砚山县| 塔河县| 驻马店市| 军事| 伊宁市| 阿巴嘎旗| 彭泽县| 那坡县| 长武县| 本溪市| 乐安县| 沁阳市| 泗阳县| 化德县| 安康市| 内乡县| 阜平县| 怀集县| 浦东新区| 会宁县| 沿河| 马鞍山市| 和林格尔县| 靖边县| 白山市| 揭东县|