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

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

創(chuàng)建一個將鍵作為列表(字符串)的字典

創(chuàng)建一個將鍵作為列表(字符串)的字典

C#
紫衣仙女 2022-08-20 16:50:21
需要創(chuàng)建一個字典,其中鍵是list(Of String)或字符串?dāng)?shù)組我發(fā)現(xiàn)這個鏈接C#列表作為字典鍵但我需要幫助來了解如何使用list(的字符串)來做到這一點Class test    Sub TryTest()        myDict.Add(New List(Of String) From {"Huey", "Dewey"}, actions.Sleeping)        myDict.Add(New List(Of String) From {"Dewey", "Louie"}, actions.Playing)        Dim newList As New List(Of String) From {"Dewey", "Louie"}        If myDict.ContainsKey(newList) Then            MsgBox("myDict contains the list of String, as Key Value")        Else            MsgBox("myDict don't contains the list of String, as Key Value")        End If    End Sub    Dim myDict As New Dictionary(Of List(Of String), actions)End ClassEnum actions    Sleeping    Eating    Studying    PlayingEnd Enum我期望包含鍵的字典輸出。P.S. 由于 c# 接近 vb.net,并且網(wǎng)絡(luò)上有很多 c#/vb.net 翻譯人員可以輕松翻譯,拜托,也非常感謝 c# 的幫助。
查看完整描述

2 回答

?
互換的青春

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


using System.Collections;

using System.Collections.Generic;

你可以創(chuàng)建一個類,如


sealed class ListComparer : EqualityComparer<List<string>>

{

  public override bool Equals(List<string> x, List<string> y)

    => StructuralComparisons.StructuralEqualityComparer.Equals(x, y);


  public override int GetHashCode(List<string> x)

    => StructuralComparisons.StructuralEqualityComparer.GetHashCode(x);

}

然后將其用作Dictionary<,>


myDict = new Dictionary<List<string>, Actions>(new ListComparer());

該類也可以是泛型的。ListComparersealed class ListComparer<T> : EqualityComparer<List<T>>


編輯:


在評論之后,我意識到這不起作用(我曾經(jīng)想過)!它適用于和諸如.所以上面的類需要改成:StructuralEqualityComparerList<string>string[]Tuple<string, string, ...>


sealed class ListComparer : EqualityComparer<List<string>>

{

  public override bool Equals(List<string> x, List<string> y)

    => StructuralComparisons.StructuralEqualityComparer.Equals(x?.ToArray(), y?.ToArray());


  public override int GetHashCode(List<string> x)

    => StructuralComparisons.StructuralEqualityComparer.GetHashCode(x?.ToArray());

}

我最初的嘗試是錯誤的!


查看完整回答
反對 回復(fù) 2022-08-20
?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊

問題是你比較2個對象。您需要比較其中的值。我不知道我的代碼 vb.net 是c#(LINQ)。像這樣做。


var myDic = new Dictionary<List<string>, Actions>();

myDic.Add(new List<string>() { "Huey", "Dewey" }, Actions.Sleeping);

myDic.Add(new List<string>() { "Dewey", "Louie" }, Actions.Playing);

var newList = new List<string>() { "Dewey", "Louie" };

if (myDic.Keys.Any(key =>

{

    if (key.Count != newList.Count) return false;


    var same = true;

    for (int i = 0; i < newList.Count; i++)

    {

        if (key[i] != newList[i]) same = false;

    }

    return same;

}))

    MsgBox("myDict contains the list of String, as Key Value");

else

    MsgBox("myDict don't contains the list of String, as Key Value")


查看完整回答
反對 回復(fù) 2022-08-20
  • 2 回答
  • 0 關(guān)注
  • 107 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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