2017-09-03 1 views
0

Comment pourrais-je aller sur la conversion de ce tableau PHP en C#Conversion d'un tableau PHP en C#

$hiscores = array("Overall", 
      "stats" => array(  
        "Attack", "Defence", "Strength", 
        "Hitpoints", "Ranged", "Prayer", 
        "Magic", "Cooking", "Woodcutting", 
        "Fletching", "Fishing", "Firemaking", 
        "Crafting", "Smithing", "Mining", 
        "Herblore", "Agility", "Thieving", 
        "Slayer", "Farming", "Runecrafting", 
        "Hunter", "Construction", "Summoning", 
        "Dungeoneering" 
        ), 
      "minigames" => array(
        "Duel Tournaments", "Bounty Hunters", 
        "Bounty Hunter Rogues", "Fist of Guthix", 
        "Mobilising Armies", "B.A Attackers", 
        "B.A Defenders", "B.A Healers", 
        "Castle Wars Games", "Conquest" 
      ) 
); 

Je trouve la syntaxe PHP pour être très déroutant, je ne peux pas dire comment j'irais à faire personnellement.

D'après ce que je peux dire que ce serait quelque chose comme:

string[] hiscores = new string["Overall","stats","minigames"] 

Cependant « statistiques » et « mini-jeux » ne contiennent pas la chaîne aime ils le font dans le code PHP.

Je ne sais pas non plus ce que signifie "=> array()".

+1

Cela dépend de ce que vous voulez faire avec cette structure. Peut être un 'Dictionary >', pourrait être une classe personnalisée, pourrait être quelque chose d'autre. Ne vous accrochez pas à une conversion ligne par ligne entre les langues. Implémentez la fonctionnalité dans la langue cible. – David

+0

Je vous suggère de lire: http://php.net/manual/fr/language.types.array.php –

Répondre

0

En PHP les tableaux ont une clé et un valeur, ceci est défini comme ceci:

key => "value" 

Une clé peut contenir un ou plusieurs éléments associés. Dans votre exemple, la clé contient un tableau de chaînes associées.

En C#, vous pouvez le faire en utilisant dictionary

Whit un dictionnaire, vous pouvez ajouter par exemple un tableau de chaînes à une touche. Maintenant, vous pouvez ajouter un tableau de mini-jeux aux mini-jeux clés. Pour obtenir la valeur du mini-jeu, vous pouvez faire dictionary["minigame"]. Notez que la clé doit exister dans le dictionnaire

Définir le dictionnaire, les clés seront de type chaîne et les valeurs qui sont liées à la clé seront de type chaîne de caractères afin que vous puissiez ajouter un tableau de chaînes à une clé.

Dictionary<string, string[]> dictionary = new Dictionary<string, string[]>(); 

Ajouter les articles au dictionnaire:

 dictionary.Add("stats", new[] 
      { 
       "Attack", "Defence", "Strength", 
       "Hitpoints", "Ranged", "Prayer", 
       "Fletching", "Fishing", "Firemaking", 
       "Crafting", "Smithing", "Mining" 
      } 
     ); 

     dictionary.Add("minigames", new[] 
      { 
       "Duel Tournaments", "Bounty Hunters", 
       "Bounty Hunter Rogues", "Fist of Guthix", 
       "Mobilising Armies", "B.A Attackers", 
       "B.A Defenders", "B.A Healers", 
       "Castle Wars Games", "Conquest" 
      } 
     ); 

Obtenir les éléments whits sont Whit associés à la stats clé:

 foreach (var value in dictionary["stats"]) 
     { 
      Console.WriteLine(value); 
     } 

Obtenir les éléments whits sont Whit associés à la minigames clé:

 foreach (var value in dictionary["minigames"]) 
     { 
      Console.WriteLine(value); 
     } 
0

Prenons cet exemple:

public class MakeList 
{ 
    private List<Model1> models1; 
    public MakeList() 
    { 
     models1 = new List<Model1> 
     { 
      new Model1 
      { 
       FirstProp = "Overall", 
       SecondProp = new List<String> 
         { 
          "Attack", "Defence", "Strength", 
         "Hitpoints", "Ranged", "Prayer", 
         "Magic", "Cooking", "Woodcutting", 
         "Fletching", "Fishing", "Firemaking", 
         "Crafting", "Smithing", "Mining", 
         "Herblore", "Agility", "Thieving", 
         "Slayer", "Farming", "Runecrafting", 
         "Hunter", "Construction", "Summoning", 
         "Dungeoneering" 
         }, 
       ThirdProp = new List<String> 
         { 
         "Duel Tournaments", "Bounty Hunters", 
         "Bounty Hunter Rogues", "Fist of Guthix", 
         "Mobilising Armies", "B.A Attackers", 
         "B.A Defenders", "B.A Healers", 
         "Castle Wars Games", "Conquest" 
         } 
     } 


    }; 
    } 
} 

Avec cette classe que vous allez changer de costumes vos besoins:

public class Model1 
{ 
    public string FirstProp { get; set; } 
    public List<String> SecondProp { get; set; } 
    public List<String> ThirdProp { get; set; } 
}