2016-12-08 4 views
0

Я все еще немного ржавый на C# Мне нужно хранить слова больше, чем 8 букв из текстового файла. Это то, что у меня есть на данный момент:Есть ли способ повторного использования строки C#?

n новый текстовый файл.

+0

попробуйте stringBulider или просто newString = ""; –

+2

Как насчет просто 'newString =" ";'? И да, вы, вероятно, должны использовать StringBuilder для производительности. –

+0

Рассмотрите возможность избавиться от 'lettercount', лучше используйте' newString.Length' вместо этого. Он всегда даст вам точно такую ​​же информацию. И он будет сброшен до 0 (очевидно), если вы выполните 'newString =" ";'. –

ответ

1

Используйте = "" для его сброса. Использовать StringBuilder было бы лучше.

foreach (char c in fileString) 
{ 
    newString += c; 
    lettercount++; 
    if (lettercount > 7 && c == ' ') 
    { 
     Console.WriteLine(newString); 
     lettercount=0; 
     newString = ""; 
    } 
    if (c == ' ') 
    { 
     lettercount = 0; 
     newString = ""; 
    } 
} 

Если вы использовали StringBuilder, это было бы что-то вроде:

foreach (char c in fileString) 
{ 
    newString.Append(c); 
    lettercount++; 
    if (lettercount > 7 && c == ' ') 
    { 
     Console.WriteLine(newString.ToString()); 
     lettercount=0; 
     newString.Clear(); 
    } 
    if (c == ' ') 
    { 
     lettercount = 0; 
     newString.Clear(); 
    } 
} 
7

Попробуйте это:

string[] words = fileString.Split(0x20) // split by space 
IEnumerable<string> longerThan8 = words.Where(word => word.Length > 8); 
+0

Красивый, простой подход. +1 – ColinM

+0

... это должно быть '> 7', не так ли? –

+1

@PeterB Вопрос: «Я все еще немного ржавый на C# Мне нужно хранить слова больше, чем 8 букв из текстового файла» и «8> 8 == false» –

2

Как насчет заменить всю вещь с чем-то вроде

foreach (var item in fileString.Split(' ').Where(t => t.Length > 7)) 
{ 
    Console.WriteLine(item); 
} 
0
 foreach (string s in fileString.Split(' ').Where(_=>_.Length > 7)) 
     { 
      Console.WriteLine(s); 
     } 
Смежные вопросы