int index1 = Array.IndexOf(myKeys, "foot");
例 私はFOOT
配列リストに持っていますが、 の値を返しますindex1 = -1
。
大文字と小文字を区別せずにインデックスを見つけるにはどうすればよいfoot
ですか?
int index1 = Array.IndexOf(myKeys, "foot");
例 私はFOOT
配列リストに持っていますが、 の値を返しますindex1 = -1
。
大文字と小文字を区別せずにインデックスを見つけるにはどうすればよいfoot
ですか?
FindIndex
少しラムダを使用して。
var ar = new[] { "hi", "Hello" };
var ix = Array.FindIndex(ar, p => p.Equals("hello", StringComparison.CurrentCultureIgnoreCase));
IComparer<string>
クラスの使用:
public class CaseInsensitiveComp: IComparer<string>
{
private CaseInsensitiveComparer _comp = new CaseInsensitiveComparer();
public int Compare(string x, string y)
{
return _comp.Compare(x, y);
}
}
次に、ソートされた配列で BinarySearch を実行します。
var myKeys = new List<string>(){"boot", "FOOT", "rOOt"};
IComparer<string> comp = new CaseInsensitiveComp();
myKeys.Sort(comp);
int theIndex = myKeys.BinarySearch("foot", comp);
通常、より大きな配列、できれば静的な配列で最も効果的です。