J'ai une chaîne comme ceci:
"user = U123; name = test; lastname = Utilisateur"Comment pouvez-vous changer un ";" chaîne séparée à une sorte de dictionnaire?
Je veux obtenir un dictionnaire pour cette chaîne comme ceci:
user "u123"
name "Test"
lastname "User"
cette façon, je peut facilement accéder aux données dans la chaîne.
Je veux le faire en C#.
EDIT:
C'est ce que j'ai jusqu'à présent:
public static Dictionary<string, string> ValueToDictionary(string value)
{
Dictionary<string, string> result = null;
result = new Dictionary<string, string>();
string[] values = value.Split(';');
foreach (string val in values)
{
string[] valueParts = val.Split('=');
result.Add(valueParts[0], valueParts[1]);
}
return result;
}
Mais pour être honnête, je pense vraiment qu'il ya une meilleure façon de le faire.
Cheers, M.
Ça ne va pas aller mieux que ce que vous avez maintenant. À ce moment, les réponses ci-dessous sont toutes beaucoup plus difficiles à lire que votre propre code. La seule vraie amélioration que vous pourriez faire est de le rendre plus rapide (au prix de le rendre encore plus illisible que les réponses actuelles), mais il n'a probablement pas besoin d'être plus rapide? – Joren
Votre code est bon et lisible, je préfère cette solution sur n'importe quelle solution LINQ. – RvdK
Comme vous avez vu la plupart des solutions utilisent split. Une pensée m'a cependant traversé l'esprit, pouvez-vous garantir qu'il n'y aura pas d'espace disponible? Si tel est le cas, vous devrez ajouter une logique de découpage ou envisager de regex – Simon