我有了這個foreach循環替換以正確的順序串一個字符,但它是慢..如何取代chars inorder?快速
輸入字符串可以有不同的長度.. 字符串長度範圍1000 - 百萬
每個CHAR擡頭只需要1.2毫秒..
但它減緩下來,反正快更換字符輸入字符串..
的charlist只是字符替換..
我更換的input
字符串與value2
從charlist項目字符..
List<CharItem> charlist; //Charlist count = 98..
var txxt = input.ToCharArray();
string test = "";
foreach (var itm in txxt)
{
var itm2 = (from x in charlist where x.Value == itm select x).FirstOrDefault();
if (itm2 != null)
test = test + itm2.Value2;
}
public class CharItem
{
public char Value { get; set; }
public char Value2 { get; set; }
public override string ToString()
{
return "1." + Value + "| 2." + Value2;
}
}
至於這種說法test = test + itm2.Value2;
我不認爲一個StringBuilder是任何更快..
反正加快這,但焦炭訂單需要是相同的,只是更換.. 我知道我的硬件速度是有限的,只是我的優化代碼..
不要連接+,而是使用StringBuilder代替 –
那麼你可以先在循環中不使用字符串連接...使用'StringBuilder'而不是'char []'來轉換爲'字符串'在結尾。但是,不清楚你的代碼是否正確*。你真的打算徹底刪除任何不屬於'charlist'的字符嗎? 'charlist'有多大?你可以發佈[mcve]嗎?現在有多慢? –
這是一個文本加密算法,所以我需要替換每個字符.. linq表達式是查找正確的字符並將其替換。 – ArchAngel