teratail
質問するログイン新規登録

Q&A

解決済

5回答

17841閲覧

配列の中から配列を検索する

htsign

総合スコア870

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

2クリップ

投稿2015/11/17 15:20

編集2015/11/17 15:22

0

2

お世話になります。
主題の通りなのですが、配列から配列を検索する手法、または直接的なメソッドを探しています。

現在はとりあえず以下のようなコードで実現していますが、よりよい方法があればぜひお教えください。
また、C#に限らず他の言語でも、「この言語なら一行で書ける」等ございましたらお聞かせください。

lang

1// 拡張メソッド定義 2public static class IEnumerableExtensions 3{ 4 public static int IndexOf<T>(this IEnumerable<T> source, IList<T> list) 5 { 6 if (list == null || list.Count == 0) return -1; 7 8 int index = 0; 9 foreach (T item in source) 10 { 11 if (item != null && item.Equals(list[0])) 12 { 13 // 最初の1要素が一致したら切り出して比較 14 var part = source.Skip(index).Take(list.Count); 15 if (part.SequenceEqual(list)) return index; 16 } 17 ++index; 18 } 19 return -1; 20 } 21}

lang

1var sentence = "Lorem ipsum dolor sit amet, consectetur adipisicing elit".Select(Convert.ToByte); 2byte[] searchBytes = { 0x6f, 0x6c }; // 'o', 'l' 3Console.WriteLine(sentence.IndexOf(searchBytes)); // ==> 13

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答の取得に失敗しました

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問