2016-11-25 36 views
1

所以我解析一個大文件,我需要優化我的字符串提取過程(它目前需要大約1-2分鐘的時間才能完成解析文件的程序)。這是調試和進一步開發軟件的殺手。什麼是從字符串中提取子串的最快方法,直到C#中的分隔符?

示例程序

string sample = "First Line\nSecond Line\nThird Line"; 
string extracted_string = ExtractString(ref sample, "\n"); 
// extracted_string should hold "First Line" 
// sample should hold "Second Line\nThird Line"; 

的ExtractString功能

function string ExtractString(ref string original, string delimiter) 
{ 
    int index_of = original.IndexOf(delimiter); 
    string result = ""; 

    if(index_of >= 0) 
    { 
     result = original.Substring(0, index_of); 

     // Remove string & delimiter from original 
     original = original.Remove(0, index_of + 1); 
    } 
    else 
    { 
     result = original; 
     original = ""; 
    } 

    return result; 
} 

有我這樣做是爲了加快這一進程,以不同的方式....到目前爲止,每個記錄正在約50 -80ms來處理,可能有大約6000-7000條記錄。

+0

你試過string.split? – Yaman

+0

也許考慮使用StringBuilder?在'StringBuilder'中操作字符串應該快得多。 – pwas

+1

你真的需要修剪從原始字符串找到的字符串嗎?如果你不需要一個修剪過的原始字符串,那麼你可以傳遞最後找到的換行符的索引作爲下一個子字符串剪輯的起始點,或者使用一個完全不同的方法來處理文件 – Steve

回答

相關問題