How to add a case-insensitive option to Array.IndexOf

后端 未结 7 1957
北海茫月
北海茫月 2020-12-10 01:08

I have a string

string str=\"hello\";

This is my array

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


        
7条回答
  •  失恋的感觉
    2020-12-10 01:23

    Since Array.IndexOf is generic, it makes sense to make a generic extension function:

    public static int IndexOf(this T[] source, T value)
    {
      return IndexOf(source, value, StringComparison.InvariantCultureIgnoreCase);
    }
    
    public static int IndexOf(this T[] source, T value, StringComparison stringComparison)
    {
      if (typeof(T) == typeof(string))
        return Array.FindIndex(source, m => m.ToString().Equals(value.ToString(), stringComparison));
      else
        return Array.IndexOf(source, value);
    }
    

提交回复
热议问题