C#でAtCoderデビューのための準備

AtCoder Beginners Selection から始めてみようとしています。
[https://atcoder.jp/contests/abs](https://atcoder.jp/contests/abs)

####標準入力
```
// 文字列の入力
string s = Console.ReadLine();

// 整数の入力
long n = long.Parse(Console.ReadLine());

// 文字列配列の入力
string[] inputStrArray = Console.ReadLine().Split(' ');

// 整数配列の入力
long[] inputLongArray = Console.ReadLine().Split(' ').Select(i => long.Parse(i)).ToArray();
int[] array = Console.ReadLine().Split().Select(int.Parse).ToArray();
```
####配列の初期化
```
// 配列を生成する
var array = new int[] {0, 2, 4, 6};

// [0,1...] の配列を生成する
var array = Enumerable.Range(0, 5).ToArray(); // {0, 1, 2, 3, 4}

// 初期値が全て同じ配列を生成する
var array = Enumerable.Repeat(-1, 5).ToArray(); // { -1, -1, -1, -1, -1}
```
####繰り返し for
```
using System;

namespace Challenge
{
    class ChallengeCsFor
    {
        public static void Main()
        {
            int n = int.Parse(Console.ReadLine());
            int sum = 0;
            for (int i = 0; i < n - 1; i++)
            {
                int value = int.Parse(Console.ReadLine());
                sum = sum + value;
                Console.WriteLine($"sum={sum}");
            }
        }
    }
}
```
実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/eb124fde-2a7c-7eeb-0b85-36195b52a362.png)

####条件分岐 if else
```
using System;

namespace Challenge
{
    class ChallengeCsIf
    {
        static void Main(string[] args)
        {
            var s = Console.ReadLine();

            if (int.TryParse(s, out var result))
            {
                Console.WriteLine(result);
            }
            else
            {
                Console.WriteLine("整数に変換できません");
            }
        }
    }
}
```
実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/afe883b6-c5a3-74e6-8f17-014e11e225e4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/719956e9-83f8-6930-7e5d-bcf0d95c742b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/23ecb462-9d4d-cb63-b9d5-1ae59792f8a9.png)
####例外処理
```
using System;

namespace Challenge
{
    class ChallengeCsError
    {
        static void Main(string[] args)
        {
            var s = Console.ReadLine();
            try
            {
                Console.WriteLine(int.Parse(s));
            }
            catch
            {
                Console.WriteLine("整数に変換できません");
            }
        }
    }
}
```
実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/68c1f5d7-5a33-aceb-1376-7e8940c76e52.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/cf74eb6d-1bfe-9461-35a4-270a0c092c3d.png)

####ソート
```
using System;
using System.Linq;
 
namespace Challenge
{
    class ChallengeCsSort
    {
        public static void Main(string[] args)
        {
            int[] array = Console.ReadLine().Split().Select(int.Parse).ToArray();
            Array.Sort(array);
            foreach (int element in array) 
            {
                Console.WriteLine(element);
            }
        }
    }
}
```
実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225878/5acc8599-854a-07da-34bd-83c2136ecebf.png)

####では始めてみます
[C#でAtCoder Beginners Selection（ABC086A - Product）]
(https://qiita.com/azumabashi/items/33efd2162d69eeede6d8)
[C#でAtCoder Beginners Selection（ABC081A - Placing Marbles）]
(https://qiita.com/azumabashi/items/4eb8ba05cad1c9348538)
[C#でAtCoder Beginners Selection（ABC081B - Shift only）]
(https://qiita.com/azumabashi/items/f943be9e4e5e24f58f79)
[C#でAtCoder Beginners Selection（ABC087B - Coins）]
(https://qiita.com/azumabashi/items/410cdb2536968e587cee)
[C#でAtCoder Beginners Selection（ABC083B - Some Sums）]
(https://qiita.com/azumabashi/items/70abad1412f8e0e0a69e)
[C#でAtCoder Beginners Selection（ABC088B - Card Game for Two）]
(https://qiita.com/azumabashi/items/9445e4cf41f91d9fba27)
[C#でAtCoder Beginners Selection（ABC085B - Kagami Mochi）]
(https://qiita.com/azumabashi/items/6263a59b010e5eda68c5)
[C#でAtCoder Beginners Selection（ABC085C - Otoshidama）]
(https://qiita.com/azumabashi/items/e4d6f7320c4dbc1da2b3)
[C#でAtCoder Beginners Selection（ABC049C - 白昼夢）]
(https://qiita.com/azumabashi/items/ba8d64f991a13ebc5a96)
[C#でAtCoder Beginners Selection（ABC086C - Traveling）]
(https://qiita.com/azumabashi/items/d5f01c270c7690d0d2d6)

####参考

[天才プログラマー2人が語る、高度IT人材の採用のポイントとは？]
(https://dentsu-ho.com/articles/7074)

AtCoder Beginner Contest 042
[https://atcoder.jp/contests/abc042]
(https://atcoder.jp/contests/abc042)

AtCoder Beginner Contest 043
[https://atcoder.jp/contests/abc043]
(https://atcoder.jp/contests/abc043)

[第一回 アルゴリズム実技検定 過去問]
(https://atcoder.jp/contests/past201912-open)

[第二回 アルゴリズム実技検定 過去問]
(https://atcoder.jp/contests/past202004-open)

[第三回 アルゴリズム実技検定 過去問]
(https://atcoder.jp/contests/past202005-open)

[第四回 アルゴリズム実技検定 過去問]
(https://atcoder.jp/contests/past202010-open)

[第五回 アルゴリズム実技検定 過去問]
(https://atcoder.jp/contests/past202012-open)

ピューマ本
[最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド]
(https://www.sbcr.jp/product/4797367171/)

螺旋本
[プログラミングコンテスト攻略のためのアルゴリズムとデータ構造]
(https://book.mynavi.jp/ec/products/detail/id=35408)

蟻本
[プログラミングコンテストチャレンジブック [第2版]]
(https://book.mynavi.jp/ec/products/detail/id=22672)

競技プログラミングのための C# （4.0 以降） の Tips 詰め合わせ
[https://emkcsharp.hatenablog.com/entry/2013/Advent]
(https://emkcsharp.hatenablog.com/entry/2013/Advent)

初心者がC#でAtCoderデビューするためのVSProjectテンプレート
[https://qiita.com/sekikatsu/items/93c41c6c937ed1dfcf23]
(https://qiita.com/sekikatsu/items/93c41c6c937ed1dfcf23)

AtCoderで使えそうなC# 7.0～8.0の新機能
[https://www.terry-u16.net/entry/csharp-7-8-new-features-for-atcoder]
(https://www.terry-u16.net/entry/csharp-7-8-new-features-for-atcoder)