2016-10-24 9 views
-3

* Ich verstehe, dass ich einen Inhalt Array-String brauche, aber ich habe Probleme bei der Umsetzung.Ich habe Probleme mit File.WriteAllLines in C#

Dictionary<string, string> dictionary = new Dictionary<string, string>(); 
string[] array = File.WriteAllLines("settings.cfg"); 
for (int i = 0; i < array.Length; i++) 
{ 
    string text = array[i]; 
    if (!text.StartsWith("/") && text.Contains(":")) 
    { 
     string[] array2 = text.Split(new char[] 
     { 
      ':' 
     }); 
     dictionary.Add(array2[0], array2[1]); 
    } 
} 

* Wie würden Sie string[] Inhalt implementieren?

+1

Sie geben 'WriteAlllines' keine Zeilen. – Brandon

+6

Vielleicht möchten Sie 'File.ReadAllLines' anstelle von' File.WriteAllLines'? –

+0

Ich habe versucht, diesen Code 'File.WriteAllLines' im Verzeichnis und so –

Antwort

1

Wenn Sie solche Aufgaben implementieren, versuchen Sie es mit Linq. Sie müssen

  1. lesen die Datei
  2. filtern Linien
  3. Stellen Sie jede Zeile als Schlüssel und Wert (nur in Ihrem Fall geteilt)
  4. Materialise das Ergebnis als wörterbuch

Etwas wie folgt aus:

var dictionary = File 
    .ReadLines("settings.cfg") 
    .Where(line => !line.StartWith("/") && line.Contains(":")) 
    .Select(line => line.Split(new char[] {':'})) 
    .ToDictionary(items => items[0], items => items[1]); 

Falls Sie Dictionary<string, string[]> als Folge

"Wie würden Sie string[] Inhalte implementieren?"

alles, was Sie tun müssen, ist die letzte Zeile zu ändern:

var dictionary = File 
    .ReadLines("settings.cfg") 
    .Where(line => !line.StartWith("/") && line.Contains(":")) 
    .Select(line => line.Split(new char[] {':'})) 
    .ToDictionary(items => items[0], items => items.Skip(1).ToArray()); 

Edit: Falls Sie Sammlung in eine vorhandene Datei speichern möchten, über File.WriteAllLines die richtige Syntax ist

string[] SaveStrings = ... 

    File.WriteAllLines("settings.cfg", SaveStrings); 
+0

Ich erkannte das Problem Ich WriteAllLines in eine Textdatei, um einige Einstellungen in meinem Projekt zu speichern Ich verwendete File.WriteAllLines (" settings.cfg "); –

+0

das war meine Lösung. string [] savesettings = {"string1", "string2", "etc"}; File.WriteAllLines ("settings.cfg", savesettings); –