/// <summary> /// Return the index of the named field. /// </summary> /// <param name="name">The name of the field to find.</param> /// <returns> /// The index of the named field. /// </returns> public int GetOrdinal(string name) { var index = csv.GetFieldIndex(name, isTryGet: true); if (index >= 0) { return(index); } var namePrepared = csv.Configuration.PrepareHeaderForMatch(name, 0); var headerRecord = csv.HeaderRecord; for (var i = 0; i < headerRecord.Length; i++) { var headerPrepared = csv.Configuration.PrepareHeaderForMatch(headerRecord[i], i); if (csv.Configuration.CultureInfo.CompareInfo.Compare(namePrepared, headerPrepared, CompareOptions.IgnoreCase) == 0) { return(i); } } throw new IndexOutOfRangeException($"Field with name '{name}' and prepared name '{namePrepared}' was not found."); }