
前提・実現したいこと
任意の文字列に対して、指定した文字以外の文字が最初に出現するインデックスを取得するには、
どのような実装をすればよいでしょうか。
任意の文字列に対して、指定した文字が最初に出現するインデックスを取得するには、
IndexOfメソッドを使えばよいことは知っていますが、
「指定した文字」ではなく、「指定した文字以外の文字」を検索する方法についてです。
試したことに詳細は記載しましたが、1つは、FindIndexメソッドを使うことによって、実装はできました。
ただ、こちらの記事にあるように、
今回試したコードはLINQではありませんが、LINQみたいなコードだと少し遅いと思うので
(気にするほどではないかもしれませんが)、
できれば、提示した記事のStringクラスを使ったやり方のように
(提示記事の内容は今回の質問の本題とは異なりますが)、
なにかスマートな方法があればと思い、質問させていただきました。
なお、ループを使った実装は考えていません(それならば、FindIndexメソッドを使う方法にします)。
・質問1。
冒頭の質問です。
・質問2。
FindIndexメソッドについて調べたら、これらは配列やリストで用意されているメソッドだとわかりました。
同等のメソッドは、LINQに存在しますか?あれば教えていただきたいです。
ToCharArrayメソッドを呼び出す手間をなくしたいという理由もあります。
試したこと
C#
1 // 任意の文字列 2 string s = "aaaabc"; 3 char[] charArray = s.ToCharArray(); 4 // 指定文字 5 char letter = 'a'; 6 int index = Array.FindIndex(charArray, c => c != letter); 7 Debug.WriteLine(index); // 4
補足情報(FW/ツールのバージョンなど)
.NET 5.0

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/12/06 08:21