---
# System prepended metadata

title: C#單字反轉挑戰
tags: [C#]

---

###### tags: `C#`

# C#單字反轉挑戰
[Microsoft learn C#單字反轉挑戰](https://learn.microsoft.com/zh-tw/training/modules/csharp-arrays-operations/5-challenge-1)

```csharp=
//input
string pangram = "The quick brown fox jumps over the lazy dog";

//output
"ehT kciuq nworb xof spmuj revo eht yzal god"
```
## 使用函式
- Split() -依據參數分割字串，傳回字串陣列
- ToCharArray() -字串切割成字元陣列
- Array.Reverse() -反轉陣列
- String.Join -組合字串陣列，並在兩元素間插入字串，回傳字串
## 解題思路
1. 將input string 拆解成 string array， ["The", "quick", "brown",...]。
2. 將string array陣列裡元素單字，拆解成char array，['T', 'h', 'e']。
3. 利用陣列反轉，將char array裡的元素順序反轉，['e', 'h', 'T']。
4. 將char array，組合成string，放入string array，char ['e', 'h', 'T'] ->string ["ehT"]。
5. 將string array組合成字串且每個元素中間插入空白字元。

---
## 程式碼防雷線
---
```csharp=
string pangram = "The quick brown fox jumps over the lazy dog";
string[] pangramArr = pangram.Split(' ');

for (int i = 0;i < pangramArr.Length; i++)
{
    char[] pangramChar = pangramArr[i].ToCharArray();
    Array.Reverse(pangramChar);
    pangramArr[i] = new string(pangramChar);    
}

string result = String.Join(" ",pangramArr);
Console.WriteLine (result);
```
