Ich bin ein Noobie zu C# und verstehe nicht, warum ContainsKey()
mit den Werten bid_amount
und bid_amount
nicht wahr zurückgibt.Dictionary ContainsKey() Vergleicht keine String-Werte
Ich habe eine lange Zeichenfolge ("key=value, key=value...")
, die auf ,
aufgeteilt und dann =
in ein Wörterbuch erstellt wird. Aber wenn ich im dict bid_amount
nach einem bekannten Schlüssel suche, wird immer false zurückgegeben.
Gibt es eine Möglichkeit, Werte mit ContainsKey() zu vergleichen? Was genau vermisse ich?
string[] responseStringSplit = responseString.Split (new []{ ',' });
Dictionary<string,string> responseDict = new Dictionary<string, string>();
foreach (string word in responseStringSplit)
{
string[] splitString = word.Split (new[]{ ':' });
if (splitString.Length > 1)
{
responseDict.Add(splitString [0],splitString [1]);
}
else
{
Debug.Log ("CouldNotSplit:" + word);
}
}
foreach (KeyValuePair<string, string> entry in responseDict)
{
Debug.Log (entry.Key + "=" + entry.Value);
if (responseDict.ContainsKey ("bid_amount"))
{
Debug.Log ("found bid amount");
}
}
Können Sie uns Ihren Eingabe-String zeigen? –
Sind Sie sicher, dass es eine solche Zeichenfolge gibt? Ich meine, keine Räume um ihn herum? Vielleicht könnten Sie ein Trim hinzufügen, bevor Sie das Schlüssel/Wert-Paar um _spitstring [0], [1] _ – Steve
hinzufügen Works für mich. Überprüfen Sie Ihre Eingabe. Sehen Sie hier für ein funktionierendes Beispiel Ihres Codes mit einer gültigen Eingabe: https://dotnetfiddle.net/SxOJ8M –