Ну, вы можете использовать Array.IndexOf
:
int index = Array.IndexOf(HeaderNamesWbs, someValue);
Или просто объявить HeaderNamesWbs
как IList<string>
вместо этого - который все еще может быть массивом, если вы хотите:
public static IList<string> HeaderNamesWbs = new[] { ... };
Обратите внимание, что я бы не рекомендовал выставлять массив как public static
, даже public static readonly
.Вы должны рассмотреть ReadOnlyCollection
:
public static readonly ReadOnlyCollection<string> HeaderNamesWbs =
new List<string> { ... }.AsReadOnly();
Если вы когда-нибудь захотите это для IEnumerable<T>
, вы можете использовать:
var indexOf = collection.Select((value, index) => new { value, index })
.Where(pair => pair.value == targetValue)
.Select(pair => pair.index + 1)
.FirstOrDefault() - 1;
(+1 и -1 так, что этовернет -1 для «отсутствующих», а не 0.)