ToDictionaryの使用方法が不明です。
下記は、「実戦で役立つ C#プログラミングのイディオム/定石&パターン」からの抜粋になります。
デバックで中身を見ようとしたのですが、うまくいきませんでした。。。
ご回答可能なもののみで構いませんので、
宜しくお願い致します。
下記の7行目の
_dict = lines.Select(line => line.Split('='))
のみを抜粋すると_dict は、
配列
[0]APEC
[1]アジア太平洋経済協力
[2]ASEAN
[3]東南アジア諸国連合
[4]CTBT
[5]包括的核実験禁止条約
になると思います。
【質問1】
8行目の処理ではどのような処理が行われているのでしょうか。
(具体的にデータがどのように処理されているのでしょうか。)
【質問2】
8行目でなぜ、添え字が[0],[1]の直書きなのでしょうか。
【質問3】
(【質問2】の派生になります)
なぜ、foreach文を使用せずに、
_dictの中身が、
[0]{[APEC],[アジア太平洋経済協力]}
[1]{[ASEAN],[東南アジア諸国連合]}
[2]{[CTBT],[包括的核実験禁止条約]}
と配列になるのでしょうか。
(逆に【質問2】でforeachと合わせて、添え字をローカル変数iやkにしなくて良いのでしょうか。)
Abbreviations.txtの1行目を読み出し、
1行ずつforeach文で処理をしなければいけないような気がします。
(2行目の
private Dictionary<string, string> _dict = new Dictionary<string, string>();
で、new Dictionary<string**[], string[]**>())
と[]マークがあれば、感覚的に理解できるのですが。。
【質問4】
( 表題と異なりますが、)
Splitに改行の指定はなぜ不要なのでしょうか。
改行を指定しない場合、
_dict = lines.Select(line => line.Split('='))の結果は、
配列
[0]APEC
[1]アジア太平洋経済協力ASEAN
[2]東南アジア諸国連合CTBT
[3]包括的核実験禁止条約
のような形でペアがずれるような気がします。
お手数をお掛け致しますが、
宜しくお願い致します。
C#
11 class Abbreviations { 22 private Dictionary<string, string> _dict = new Dictionary<string, string>(); 33 44 // コンストラクタ 55 public Abbreviations() { 66 var lines = File.ReadAllLines("Abbreviations.txt"); 77 _dict = lines.Select(line => line.Split('=')) 88 .ToDictionary(x => x[0], x => x[1]); 99 } 1010 }
Abbreviations.txt↓
APEC=アジア太平洋経済協力 ASEAN=東南アジア諸国連合 CTBT=包括的核実験禁止条約
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/05 15:22