第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何刪除列表中的重復(fù)對

如何刪除列表中的重復(fù)對

C#
不負(fù)相思意 2021-06-29 17:57:35
我得到了一個帶有整數(shù)對的列表。如果它們是重復(fù)的,我如何刪除它們?Distinct 不起作用,因?yàn)檫@對可能是 (2, 1) 而不是 (1, 2)。我的清單是這樣的:1, 22, 33, 13, 22, 44, 3...我不需要 (2, 3) 和 (3, 2)我做了一個public struct FaceLine有public int A和B,然后var faceline = new List<FaceLine>();。我是 C# 的新手并且迷路了。
查看完整描述

3 回答

?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊

您可以使用自定義IEqualityComparer<FaceLine>:


public class UnorderedFacelineComparer : IEqualityComparer<FaceLine>

{

    public bool Equals(FaceLine x, FaceLine y)

    {

        int x1 = Math.Min(x.A, x.B);

        int x2 = Math.Max(x.A, x.B);

        int y1 = Math.Min(y.A, y.B);

        int y2 = Math.Max(y.A, y.B);

        return x1 == y1 && x2 == y2;

    }


    public int GetHashCode(FaceLine obj)

    {

        return obj.A ^ obj.B;

    }

}

然后查詢非常簡單:


var comparer = new UnorderedFacelineComparer();

List<FaceLine> nonDupList = faceLine

    .GroupBy(fl => fl, comparer)

    .Where(g => g.Count() == 1)

    .Select(g => g.First())

    .ToList();

如果您想保留其中一個重復(fù)項(xiàng),您只需刪除Where:


List<FaceLine> nonDupList = faceLine

    .GroupBy(fl => fl, comparer)

    .Select(g => g.First())

    .ToList();


查看完整回答
反對 回復(fù) 2021-07-10
  • 3 回答
  • 0 關(guān)注
  • 173 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號