將字符串數組strArr
中的單個字符分隔成這些字符數組charArr
的最佳方法是什麼?如何將一組字符串劃分爲C#中的組成字符?
string[] strArr = { "123", "456", "789" };
char[] chrArr = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
這是我目前在做什麼,但我不認爲這是非常優雅:
int characterCount = 0;
for (int i = 0; i < strArr.Length; i++)
{
characterCount += strArr[i].Length;
}
int indexCount = 0;
char[] chrArr = new char[characterCount];
for (int i = 0; i < strArr.Length; i++)
{
for (int j = 0; j < strArr[i].Length; j++)
{
chrArr[indexCount] = strArr[i][j];
indexCount++;
}
}
這看起來真的很傻。 LINQ似乎更直觀,更合適... –
請定義「適當」。一個簡單的性能測試表明,我的產品線比SelectMany產品線多出8倍。因爲它們似乎都沒有比其他產品具有任何特殊優勢(比如處理邊緣案例或者更好的產品),所以我會盡可能採用更快的產品。就我個人而言,我不覺得它們在可讀性方面差別很大。 –
*適當的*(adj。):適合或適當的情況。 :) - 我並不是說你錯了,我只是簡單地說它「似乎」更直觀(或C#慣用)來使用LINQ。請儘管不同意。 –