2016-11-16 61 views
2

我試圖替換位於文本文檔中大約30000行內的奇數索引號行上的字符串中的特定內容,並避免將它用於偶數行內容。例如,索引編號正好看到:如何刪除文本文件中奇數索引行上的特定內容

0. some text a2 
1. a1 some text a3 
2. some a3 text 
3. some text a3 
4. some a4 text 

我要爲字符串值使用列表,它必須被移除:

var valueList1 = new List<string> { "a1", "a2", "a3", "a4" }; 

但我不知道如何通過指數來獲得線來代替它這樣

if (index % 2 == 0) 
{ 
    string text = File.ReadAllText(path); 
      text = text.Replace("a1", "") 
        .Replace("a2", "") 
        .Replace("a3", "") 
        .Replace("a4", ""); 
    File.WriteAllText(path, text); 
} 

得到這個結果文本文件中:

some text a2 
some text 
some a3 text 
some text 
some a4 text 

回答

1

這可能會爲你

int cnti = 0; 
var ignoreList = new List<string> { "a1", "a2", "a3", "a4" }; 
string outputstring = string.Empty; 
foreach(string line in File.ReadLines("some.txt")) 
{ 
    if(cnti % 2 == 0) 
     outputstring += line; 
    else 
     outputstring += string.Join(" ", line.Split().Where(w => !ignoreList.Contains(w))); 

    outputstring += Environment.NewLine; 
    cnti++; 
} 
File.WriteAllText("some.txt", outputstring); 

讀線一招一式也採用了可變(CNTI)來算,我們讀到線做的伎倆。當(cnti % 2 == 0)然後我們應該離開這條線,因爲它是在其他部分,我們應該從數組中刪除字符串ignoreList

+0

你好,是的,效果很好,如果我想例如刪除此代碼中奇數索引的特定重複的字符串?無論如何,謝謝你,工作,因爲我問 – nikorio

+0

你可以問另一個問題,就像什麼重複和什麼必須刪除與所需的輸出將更容易回答。 @nikorio。 –

相關問題