質問編集履歴

1

追記

2016/01/12 08:32

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -35,3 +35,59 @@
35
35
  List<string>でも可能でしょうか?
36
36
 
37
37
  よろしくおねがいします。
38
+
39
+
40
+
41
+
42
+
43
+ すこし書いてみました。
44
+
45
+
46
+
47
+ //検索元の配列
48
+
49
+ string[] array = new string[] { "red", "blue", "yellow", "pink", "green", "blue", "green" };
50
+
51
+
52
+
53
+ //"pink"の位置を取得する。3
54
+
55
+ int index1 = Array.IndexOf(array, "pink");
56
+
57
+
58
+
59
+ string[] subarray1 = new string[] { "blue", "yellow" };//成功する。1
60
+
61
+ string[] subarray2 = new string[] { "blue", "green" };//失敗する。-1
62
+
63
+ int indexarray1 = compareArray(array, subarray1);
64
+
65
+ int indexarray2 = compareArray(array, subarray2);
66
+
67
+
68
+
69
+ private int compareArray(string[] array, string[] subarray) {
70
+
71
+ int index = Array.IndexOf(array, subarray[0]);
72
+
73
+ bool IsSame = true;
74
+
75
+ if (0 < index) {
76
+
77
+ for (int i = 0; i < subarray.Length; i++, index++) {
78
+
79
+ if (array[index] != subarray[i]) IsSame = false;
80
+
81
+ }
82
+
83
+ }
84
+
85
+ if (!IsSame) return -1;
86
+
87
+ else return index-subarray.Length;
88
+
89
+ }
90
+
91
+
92
+
93
+ これを再帰的に実行すればよいのですが。こんな方向性でしょうか?