2017-12-29 1 views
0

itrennen das String-Array in zwei verschiedene String-Liste in C#

String [] lines = File.ReadAllLines (Pfad), die eine String-Array haben;

Die Linien enthält die folgenden Daten

"A|3232|test" 
"C|5544|test2" 
"C|8884|test3" 
"A|7777|test0" 
"A|4343|test4" 

I die obige Anordnung trennen möchte, basierend auf ersten Buchstaben „A“ und „C“. Wie man die obigen Zeilen trennt und in den Bleow-Listen-Strings speichert.

List<string> aletterlines= 
List<string> CletterLines= 
+1

Was hast du gefragt? Was hast du bisher versucht? – hardkoded

+1

Bitte lesen Sie, wie Sie ein [minimales, vollständiges, überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) erstellen und die fehlenden Informationen zu Ihrem Post hinzufügen, indem Sie es bearbeiten :) Wenn Sie [how to frage] (https://stackoverflow.com/help/how-to-ask), aber ich empfehle das zu tun :) Ich empfehle dringend, die 2 Guides zu folgen, die ich verlinkt habe, da die Leute auf SO eher Fragen beantworten, wenn die Beiträge folgen diesen Anleitungen. Was mir gerade fehlt ist - Was hast du bisher versucht? Mit welchen Fehlern/Problemen sind Sie konfrontiert? Haben Sie vielleicht Codes, die Ihnen helfen, Ihre Frage zu verstehen? Willkommen bei StackOverflow –

Antwort

0

Sie können dies mit Linq:

var lineGroups = lines.GroupBy(d => d[0]); 
List<string> aLetters = lineGroups.SingleOrDefault(d => d.Key == 'A').ToList(); 
List<string> cLetters = lineGroups.SingleOrDefault(d => d.Key == 'C').ToList(); 
0
string[] lines = File.ReadAllLines(path); 

List<string> aletterlines = new List<string>(); 
List<string> CletterLines = new List<string>(); 

foreach (var item in lines) 
{ 
    string[] currentLine = item.Split('|'); 

    if (currentLine[0] == "A") 
    { 
     aletterlines.Add(item); 
    } 
    else 
    { 
     CletterLines.Add(item); 
    } 
} 
0

Es gibt viele Möglichkeiten, dies zu erreichen, können Sie LINQ verwenden, wie andere vorgeschlagen oder eine einfache foreach-Schleife:

private void Example() 
{ 
    string[] lines = {"A|3232|test", 
         "C|5544|test2", 
         "C|8884|test3", 
         "A|7777|test0", 
         "A|4343|test4"}; 

    List<string> aletterlines = new List<string>(); 
    List<string> CletterLines = new List<string>(); 

    foreach (string item in lines) 
    { 
     if (item.StartsWith("A")) 
     { 
      aletterlines.Add(item); 
     } 
     else if (item.StartsWith("C")) 
     { 
      CletterLines.Add(item); 
     } 
    } 
} 
Verwandte Themen