Entwickler-Ecke
Andere .NET-Sprachen - Dictionary.TryGetValue funktioniert nicht
Mitmischer 1703 - Di 01.12.09 17:26
Titel: Dictionary.TryGetValue funktioniert nicht
Delphi-Prism-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var saveValue : Integer; begin var List := new Dictionary<Char, Integer>; for i: Int32 := 0 to Input.Lines.Count-1 do begin for y: Int32 := 0 to Input.Lines[i].ToCharArray.Count-1 do begin var key := Input.Lines[i].ToCharArray[y]; if List.ContainsKey(key) then begin List.TryGetValue(key, saveValue); List.Remove(key); List.Add(key, saveValue+1); end; end; end; end; |
Hi DF :)
Ich muss euch leider wieder stören.
Ich habe eine Integer-Variable namens saveValue, die ich in List.TryGetValue(key, saveValue) als Variable einsetze - in diese soll er schreiben - er scheint aber nicht zu akzeptieren, dass ich diese Variable nur zu diesem Zweck geschaffen habe :evil: :
Fehler 1 (PE176) Modifizierer für Parameter "2" passt nicht: war [in] sollte out sein C:\Dokumente und Einstellungen\Max\Eigene Dateien\Visual Studio 2008\Projects\Project1\WindowsApplication5\WindowsApplication5\Main.pas 64 22 WindowsApplication5
Kha - Di 01.12.09 17:34
Anscheinend verlangt Prism wie C# ein
var/out nicht nur bei der Deklaration, sondern auch beim Aufruf:
Delphi-Prism-Quelltext
1:
| List.TryGetValue(key, out saveValue); |
Aber wozu
TryGetValue, wenn du davor schon ContainsKey aufgerufen hast? Ich denke, du meinst eigentlich folgendes:
Delphi-Prism-Quelltext
1: 2: 3: 4: 5:
| var key := Input.Lines[i].ToCharArray[y]; if List.TryGetValue(key, out saveValue) then List[key] := saveValue + 1 else List.Add(key, 1); |
Etwas lesbarer, außerdem wird ToCharArray nicht mehrmals pro Zeile aufgerufen:
Delphi-Prism-Quelltext
1: 2:
| for line in Input.Lines do begin for c in line.ToCharArray do begin |
Mitmischer 1703 - Di 01.12.09 17:38
Stimmt, vielen Dank!
Klappt!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!