読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

参照渡し、Dictionaryのforeach、Listのソート【C#】


このエントリーをはてなブックマークに追加

C#関連で記事のするほどじゃないけど、まとめておきたいモノを複数列挙する感じの記事です。

Tipsみたいなものなのでそれぞれに関係はありません。


参照渡し

C#で参照渡しを行いたい時はrefを付けます。

void Main (){

  int a = 10;

  Test (ref a);

  Debug.Log (a);

}
void Test(ref int a){
  a = 100;
}

100


引数の参照渡し (C# によるプログラミング入門)


普通の値渡しでは値のコピーを渡してるだけなので、

実行したメソッド内で値を変更しても元の変数に影響はありませんが、

参照渡しを行えば、元の変数も書き換える事ができます。


Dictionaryのforeach

Dictionary型でforeachを行うには以下のようにKeyValuePairを使います。

Dictionary<string, string> dic = new Dictionary<string, string> (){
  {"key1", "value1"}, {"key2", "value2"}, {"key3", "value3"}
};

foreach(KeyValuePair<string, string> pair in dic){
  Debug.Log (pair.Key + " " + pair.Value);
}

key1 value1
key2 value2
key3 value3



KeyValuePairにはkeyとvalueがセットで入っています。

また、dic.KeysでKeyのみの配列を取得する事も出来るのでkeyだけでforeachを回す事も可能です。


Listのソート

Listのソートは以下のようにSort()を使って行えます.

List<int> list = new List<int>(){5, 2, 3, 1, 4};

list.Sort();

foreach (int val in list) {
  Debug.Log (val);
}

1
2
3
4
5



Sort()では昇順にソートされるので、降順にソートしたい場合はSort()の後にReverse()を行います。

また、SortedList, SortedDictionaryという要素が追加される度にソートされるクラスもあるようです。