ブログで説明するのに少しゴリゴリなコードになってしまいまいしたが・・
とある配列を自分の思い通りの並び順にし、
且つ足りない時もベースの並び順に従った順で並べ替えするコード
using System; namespace SortTest { class Program { static void Main(string[] args) { //ベースの並び順 string[] strs1 = { "文字1", "文字2", "文字3", "文字4", "文字5" }; //バラバラ string[] strs2 = { "文字5", "文字4", "文字3", "文字1", "文字2" }; //数も足りないし、順もバラバラ string[] strs3 = { "文字4", "文字2", "文字3" }; //一時格納用 string[] temp1 = new string[strs2.Length]; string[] temp2 = new string[strs3.Length]; int n = 0; foreach (string str in strs2){ temp1[n] = strs2[n]; n++; } n = 0; foreach (string str in strs3) { temp2[n] = strs3[n]; n++; } int j = 0; foreach (string str in strs1) { for (int i = 0; i < strs2.Length; i++) { if (temp1[i] == str) { strs2[j] = str; j++; } } } j = 0; foreach (string str in strs1) { for (int i = 0; i < strs3.Length; i++) { if (temp2[i] == str) { strs3[j] = str; j++; } } } Console.WriteLine("ベースの並び順"); foreach (string str in strs1) { Console.WriteLine(str); } Console.WriteLine("バラバラ→並び替え"); foreach (string str in strs2) { Console.WriteLine(str); } Console.WriteLine("数も足りないし、順もバラバラ→並び替え"); foreach (string str in strs3) { Console.WriteLine(str); } } } }
実行結果
それはそうと、実はビジネスマン(社畜)らしく
ある資格を取ることになってしまいました。
別に資格に頼る気も、資格を取ったからと言って年収が上がるわけでもなく
頑張るメリットはあまり見出せないのですが・・
まあここは私のちっぽけなプライドの為にほんの少し、
プライペートを切り売りし、合格してやろうかと思っております。