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

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

C# 查詢鍵值列表并查找重復(fù)項(xiàng)

C# 查詢鍵值列表并查找重復(fù)項(xiàng)

C#
回首憶惘然 2022-06-12 10:28:30
我在 c# 中有一個(gè)列表:List<Data> uData = new List<uData>();其中 uData 從 UI 填充為:{   Id: 1,   Name: "Smith",   Input: "7,8",   Output: "Output1",   CreatedBy: "swallac",   CreatedON: "12/01/2018"},{   Id: 2,   Name: "Austin",   Input: "7,8",   Output: "Output1",   CreatedBy: "awanda",   CreatedON: "12/03/2018"},{   Id: 1,   Name: "Smith",   Input: "22,22",   Output: "Output2",   CreatedBy: "swallac",   CreatedON: "12/01/2018"},{   Id: 1,   Name: "Smith",   Input: "9,8",   Output: "Output2",   CreatedBy: "swallac",   CreatedON: "12/01/2018"},{   Id: 1,   Name: "Peter",   Input: "1,10",   Output: "Output3",   CreatedBy: "pjon",   CreatedON: "12/02/2018"}我想要做的是在“輸出”鍵上搜索這個(gè)列表,并找出“輸入”鍵的相應(yīng)值是否有重復(fù)項(xiàng)。例如,在我上面的示例列表中,我有三個(gè)輸出:Output1、Output2、Output3?,F(xiàn)在對(duì)于輸出值為“Output1”的鍵的列表,相應(yīng)的“輸入”鍵在此處重復(fù)。值為“7,8”。這是我要強(qiáng)調(diào)的。所以 Output1 具有 Output2 和 Output3 沒有的重復(fù)輸入。我可以像下面這樣首先找出輸出然后檢查值:var myList = uData.Where(p => p.Output == "Output").First();但我不會(huì)提前知道所有的輸出來檢查。有什么可以開始的輸入嗎?
查看完整描述

3 回答

?
莫回?zé)o

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

您可以獲得重復(fù)項(xiàng)的列表,如下所示:

var myList = uData.GroupBy(l => l.Ouput)
                  .SelectMany(g => g.GroupBy(x => x.Input).Where(x => x.Count() > 1))
                  .SelectMany(x => x);
  • 按輸出分組以獲得一系列相關(guān)項(xiàng)目Output

  • 用于SelectMany扁平化按輸入分組的結(jié)果,其中有重復(fù)項(xiàng)

  • 用于SelectMany展平為單個(gè)IEnumerable<Data>

否則,如果您只想知道是否有基于上述標(biāo)準(zhǔn)的重復(fù)項(xiàng),那么您可以使用Any

var anyDuplicates = uData.GroupBy(l => l.Ouput)
                         .Any(g => g.GroupBy(x => x.Input).Any(x => x.Count() > 1));


查看完整回答
反對(duì) 回復(fù) 2022-06-12
?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果我正確理解您的問題,您不想搜索特定輸出,而是查找所有重復(fù)的輸出和輸入值。您可以通過對(duì)組合進(jìn)行分組并過濾具有多個(gè)條目的組來做到這一點(diǎn):

var duplicates = uData.GroupBy(d=>new{d.Input,d.Output}).Where(g=>g.Count() > 1)

對(duì)于您的示例,上面返回(可枚舉)一個(gè)組,其鍵為 {Output: "Output1", Input: "7,8}。(該組本身包含具有該組合的所有元素)


查看完整回答
反對(duì) 回復(fù) 2022-06-12
?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以使用查找,這將創(chuàng)建一個(gè)對(duì)象,您可以使用您指定的鍵進(jìn)行迭代:


public class Program

{

    public static void Main(string[] args)

    {

        List<data> myList = new List<data>();

        myList.Add(new data("output1", "1,5"));

        myList.Add(new data("output2", "1,6"));

        myList.Add(new data("output1", "1,5"));

        myList.Add(new data("output1", "2,0"));


        ILookup<string, string> myLookup = myList.ToLookup(d => d.output, d => d.input);


        foreach (IGrouping<string, string> items in myLookup)

        {

            Console.WriteLine("Output : " + items.Key);

            foreach (string input in items)

            {

                Console.WriteLine("-- Input value is " + input);

            }

        }

    }

}


public class data

{

    public string output;

    public string input;


    public data(string output, string input)

    {

        this.output = output;

        this.input = input;

    }

}

輸出將如下所示:


輸出 : output1

-- 輸入值為 1,5

-- 輸入值為 1,5

-- 輸入值為 2,0

輸出 : output2

-- 輸入值為 1,6


然后您可以檢查任何兩個(gè)輸入值是否相同。


查看完整回答
反對(duì) 回復(fù) 2022-06-12
  • 3 回答
  • 0 關(guān)注
  • 285 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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