public void GetColumnIndex_ValidHeaderValue_ResultAsExpected() { List <List <String> > content = new List <List <String> >() { new List <String>() { "HA", "HB", "HC" }, new List <String>() { "11", "12", "13" }, new List <String>() { "21", "22", "23", "24" }, new List <String>() { "31", "32" }, }; CsvContainer instance = new CsvContainer(content, new CsvSettings() { Heading = true }) { Compare = StringComparison.InvariantCulture }; Assert.That(instance.GetColumnIndex("HA"), Is.EqualTo(0)); Assert.That(instance.GetColumnIndex("HB"), Is.EqualTo(1)); Assert.That(instance.GetColumnIndex("HC"), Is.EqualTo(2)); }
public void GetColumnIndex_InvalidHeaderValue_ResultAsExpected(Boolean heading, String header) { List <List <String> > content = new List <List <String> >() { new List <String>() { "HA", "HB", "HC" }, new List <String>() { "11", "12", "13" }, new List <String>() { "21", "22", "23", "24" }, new List <String>() { "31", "32" }, }; CsvContainer instance = new CsvContainer(content, new CsvSettings() { Heading = heading }); Assert.That(instance.GetColumnIndex(header), Is.EqualTo(-1)); }
/// <summary> /// Gets the zero-based index of a column that is referenced by provided header. /// </summary> /// <remarks> /// This extension gets the zero-based index of a column that is referenced by /// provided header or <c>-1</c> if no column could be found for any reason. /// </remarks> /// <param name="container"> /// The container to get the column index from. /// </param> /// <param name="header"> /// The header to get the column index for. /// </param> /// <returns> /// The zero-based column index or <c>-1</c>. /// </returns> private static Int32 GetColumn(this CsvContainer container, String header) { return(container?.GetColumnIndex(header) ?? -1); }