Array.IndexOf に大文字と小文字を区別しないオプションを追加する方法 質問する

Array.IndexOf に大文字と小文字を区別しないオプションを追加する方法 質問する

文字列があります:

string str = "hello";

そして配列:

string[] myarr = new string[] {"good", "Hello", "this", "new"};

文字列 ("hello") と比較するときに (ループを使用せずに) 配列から ("Hello") のインデックスを取得する必要があります。

私が試してみました:

int index = Array.IndexOf(myarr, str);

これは-1、大文字の「H」のため を返しますが、 の結果が必要です1

私も試してみましたStringComparer.OrdinalIgnoreCaseが、効果はありませんでした。

ベストアンサー1

注意してください!!
解決策としてマークされた回答には、次のような問題がある可能性があります。

string array[] = {"hello", "hi", "bye" , "welcome" , "hell"}

回答で説明したのと同じ方法を使用して、「hell」という単語のインデックスを検索すると、次のようになります。

int indexOfArray = Array.FindIndex(array, t => t.IndexOf("hell", StringComparison.InvariantCultureIgnoreCase) >= 0);

indexOfArray = 0の代わりに結果が返されます4

代わりに以下を使用します:

Array.FindIndex(array, t => t.Equals("hell", StringComparison.InvariantCultureIgnoreCase));

適切な結果を得るために。

おすすめ記事