Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
[Delphi Prism] Dictionary.TryGetValue funktioniert nicht
spacer
Autor Nachricht
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

Beiträge: 650
Dabei seit: 01.10.2007
Wohnort: Titz

Win Vista
Delphi 3, C++ (CBuilder6)
BeitragVerfasst am: Di 01.12.09 16:26 
Sprache: Delphi Prism
Antworten mit Zitat Beitrag melden
ausblenden Delphi-Prism-Quelltext markieren
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

_________________
Was soll ich sagen???
Private Nachricht sendenPosting in privater Nachricht zitieren
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Moderator

Beiträge: 2364
Dabei seit: 12.11.2005
Wohnort: Brackenheim

Win Vista
F#, C# (VS08 Pro)
BeitragVerfasst am: Di 01.12.09 16:34  Antworten mit Zitat Beitrag melden
Anscheinend verlangt Prism wie C# ein var/out nicht nur bei der Deklaration, sondern auch beim Aufruf:
ausblenden Delphi-Prism-Quelltext markieren
1:
List.TryGetValue(key, out saveValue);

Aber wozu TryGetValue, wenn du davor schon ContainsKey aufgerufen hast? Ich denke, du meinst eigentlich folgendes:
ausblenden Delphi-Prism-Quelltext markieren
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:
ausblenden Delphi-Prism-Quelltext markieren
1:
2:
for line in Input.Lines do begin
for c in line.ToCharArray do begin

_________________
“I love deadlines. I like the whooshing sound they make as they fly by.”
- Douglas Adams


Zuletzt bearbeitet von Kha am Di 01.12.09 16:39, insgesamt 1-mal bearbeitet
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

(Threadstarter)

Beiträge: 650
Dabei seit: 01.10.2007
Wohnort: Titz

Win Vista
Delphi 3, C++ (CBuilder6)
BeitragVerfasst am: Di 01.12.09 16:38  Antworten mit Zitat Beitrag melden
Stimmt, vielen Dank!

Klappt!

_________________
Was soll ich sagen???
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home