Comment lire un dictionnaire composé d'une chaîne en tant que clé

Lara

J'ai un dictionnaire qui consiste en une chaîne en tant que clés et en bool en valeur comme

[{1,1 True}]
[{5,1 True}]
[{5,2 True}]
[{2,4 True}]

Voici comment j'ajoute des valeurs dans le dictionnaire.

string DictKey = (j +","+ (iPageIndex - 1)).ToString();
PageVersusRowCheckboxStatus.Add(DictKey, true);

Maintenant, je dois parcourir les valeurs résultantes du dictionnaire en fonction de la deuxième valeur de la clé.Pour eaxmple, dans le dictionnaire ci-dessus, 1,1 et 5,1 sont les clés.

Existe-t-il un moyen de faire une boucle sur la base de la deuxième valeur de la clé partagée ci-dessus, c'est-à-dire et d'obtenir la première, c'est-à-dire 1 et 5 respectivement.

15ee8f99-57ff-4f92-890c-b56153

Faites une boucle PageVersusRowCheckboxStatus.Keyset divisez chacun d'eux. Cependant, vous feriez probablement mieux d'utiliser Tuple<int,int>comme type de clé au lieu de chaîne:

Dictionary<Tuple<int, int>, bool> PageVersusRowCheckboxStatus = 
    new Dictionary<Tuple<int, int>, bool>();

//...

var DictKey = new Tuple<int, int>(j, iPageIndex - 1);
PageVersusRowCheckboxStatus.Add(DictKey, true);


var q = 
    PageVersusRowCheckboxStatus.Keys
        .Where(t => t.Item2 == 1)
        .Select(t => t.Item1);

Si vous utilisez une chaîne et que vous la divisez tout le temps, votre code est encombré de trucs bizarres, et chaque fois que vous devez gérer les deux parties de la clé, vous devez vous rappeler comment fonctionne le fractionnement. C'est plus facile à écrire, plus facile à déboguer et plus facile à gérer si vous utilisez une classe qui a deux propriétés int.

Voici une question, cependant: que faites-vous avec les valeurs booléennes dans le dictionnaire? Si vous les placez simplement comme espace réservé, vous feriez peut-être mieux d'utiliser

List<Tuple<int, int>>

Ou alors

HashSet<Tuple<int, int>>

@ORMapper souligne que si l'hyper-efficacité n'est pas un gros problème (et ce n'est très, très souvent pas), cela pourrait être très simple et efficace:

List<Tuple<int, int, bool>>

Si vous recherchez uniquement les éléments par index de page, vous ne tirez aucun avantage de l'utilisation d'un dictionnaire. Vous pouvez parcourir toutes les clés, mais vous ne pouvez pas rechercher de valeurs par clé partielle. En fait, il est possible que ce soit ce que vous voulez:

var dict = new PageVersusRowCheckboxStatus();

dict.SetRowStatus(2, 1, true);
dict.SetRowStatus(2, 5, true);
dict.SetRowStatus(3, 5, true);
dict.SetRowStatus(4, 2, true);

// ...

//  Here's how to do the query that returns ( 1, 5 ) for page index key 1
int pageIndexKey = 1;
if (dict.ContainsKey(pageIndexKey))
{
    foreach (int row in dict[pageIndexKey].Keys)
    {
        //  Do something
    }
}

// ...

public class RowStatusDictionary : Dictionary<int, Dictionary<int, bool>>
{
    public void SetRowStatus(int pageIndex, int row, bool status)
    {
        Dictionary<int, bool> rowStatuses = null;

        int pageIndexKey = pageIndex - 1;

        if (!this.TryGetValue(pageIndexKey, out rowStatuses))
        {
            this[pageIndexKey] = new Dictionary<int, bool>();
        }

        rowStatuses[row] = status;
    }

    public bool GetRowStatus(int pageIndex, int row)
    {
        Dictionary<int, bool> rowStatuses = null;

        int pageIndexKey = pageIndex - 1;

        if (TryGetValue(pageIndexKey, out rowStatuses))
        {
            return rowStatuses[row];
        }

        return false;
    }
}

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Comment initialiser un dictionnaire dans swift4 avec une clé en tant que chaîne et une valeur en tant que tableau 2D ?

Comment puis-je obtenir la clé de l'objet avec la valeur d'attribut la plus faible pour un dictionnaire Python avec une chaîne en tant que clé et un objet de classe en tant que valeur ?

javascript comment créer un tableau d'objets avec une clé en tant que chaîne

Comment définir un élément de dictionnaire avec une clé en tant que tableau ?

Comment écrire un dictionnaire unique dans un dictionnaire avec une liste en tant que clés d'un fichier csv ?

Comment lire chaque première ligne d'un fichier en tant que valeurs, la seconde en tant que clé d'un dictionnaire

Comment lire une paire clé-valeur à partir d'un fichier json en tant que dataframe pandas?

Comment lire la première ligne d'un fichier en tant que clé et les 3 lignes suivantes en tant que liste de valeurs dans un dictionnaire, python

Comment attribuer une clé de texte à un dataframe stocké en tant que valeur dans un dictionnaire?

Comment ajouter une chaîne à chaque clé d'un dictionnaire?

comment passer une chaîne dans un tableau en tant que clé et valeur

Comment supprimer une clé de chaîne vide d'un dictionnaire en python ?

Comment mapper une série de conditions en tant que clés dans un dictionnaire?

Comment lire une chaîne numérique en tant que chaîne dans une table sqlite

Comment enregistrer le nom d'un fichier du répertoire en tant que clé du dictionnaire ?

Comment créer un objet / tableau à partir d'une chaîne clé / valeur composée de '/'

Comment lire datetime à partir de sqlite en tant que datetime au lieu d'une chaîne en Python?

Comment classer une chaîne en fonction d'un dictionnaire?

Comment ajouter un dictionnaire à une autre clé de chaîne de dictionnaire en Python3 ?

Comment remplacer une chaîne à l'aide d'un dictionnaire contenant plusieurs valeurs pour une clé en python

Comment puis-je appeler un mot clé dans un dictionnaire à l'intérieur d'une chaîne en python ?

Comment lire une chaîne multiligne en tant que flux de fichier en python3?

Comment extraire la clé et la valeur en tant que colonnes distinctes d'une colonne de chaîne JSON

Comment modifier une valeur imbriquée dans un dictionnaire en tant que clé de niveau supérieur

Comment puis-je lire un fichier csv en tant que dictionnaire de sorte que les clés soient des tuples

Obtenir des valeurs à partir d'un JSON qui a séparé une chaîne en tant que clés

obtenir une erreur en tant que Impossible de lire la propriété 'clé' d'un angle non défini

Comment lire un fichier json et le renvoyer en tant que dictionnaire en Python

Décompresser un dictionnaire et passer à une fonction en tant que paramètres de mots-clés

TOP liste

  1. 1

    J'ai besoin de savoir si ces deux phrases sont les mêmes en programmation

  2. 2

    Javascript indiquant "impossible de définir la propriété 'innerHTML' sur null"

  3. 3

    Nextcloud avec Docker: impossible de créer ou d'écrire dans le répertoire de données

  4. 4

    La taille de la forme n'est pas égale à la taille de la cellule du tableau et ajuste le texte à l'intérieur de la forme

  5. 5

    Trouver l'intersection et l'union de deux rectangles

  6. 6

    Comment changer la couleur de la police dans R?

  7. 7

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  8. 8

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  9. 9

    Compter combien de fois un nombre apparaît dans un tableau aléatoire

  10. 10

    Pourquoi utiliser Asyncio ne réduit pas le temps d'exécution global en Python et n'exécute pas les fonctions simultanément?

  11. 11

    Comment convertir une chaîne en tuple en utilisant `reads`?

  12. 12

    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

  13. 13

    comment afficher un bouton au-dessus d'un autre élément ?

  14. 14

    Création d'un nouvel objet d'une classe avec un nouveau nom en cliquant sur un bouton dans java swing

  15. 15

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  16. 16

    Restauration de la sauvegarde de la base de données SQL Server sur la version inférieure

  17. 17

    Créer un graphique à barres avec une fréquence relative / à partir d'un objet de table dans R

  18. 18

    Création d'un rappel python pour une fonction C à partir d'une DLL avec un tampon char.

  19. 19

    java.lang.NoClassDefFoundError: org / springframework / data / repository / config / BootstrapMode

  20. 20

    comment le contrôle de tableau javascript devrait-il être

  21. 21

    impossible d'ouvrir un nouvel onglet dans react, ajoute localhost: 3000 sur le lien?

chaudétiquette

Archive