diff --git a/src/Sep.Test/SepReaderHeaderTest.cs b/src/Sep.Test/SepReaderHeaderTest.cs index f5c4090..9af102a 100644 --- a/src/Sep.Test/SepReaderHeaderTest.cs +++ b/src/Sep.Test/SepReaderHeaderTest.cs @@ -45,6 +45,13 @@ public void SepReaderHeaderTest_NotEmpty() AreEqual([0, 2], header.IndicesOf((ReadOnlySpan)["A", "C"])); AreEqual([2, 0], header.IndicesOf((IReadOnlyList)["C", "A"])); + var tryTrue = header.TryIndexOf("B", out var tryTrueIndex); + Assert.IsTrue(tryTrue); + Assert.AreEqual(1, tryTrueIndex); + var tryFalse = header.TryIndexOf("XX", out var tryFalseIndex); + Assert.IsFalse(tryFalse); + Assert.AreEqual(0, tryFalseIndex); + var actualIndices = new int[2]; header.IndicesOf((ReadOnlySpan)["A", "C"], actualIndices); AreEqual([0, 2], actualIndices); diff --git a/src/Sep/SepReaderHeader.cs b/src/Sep/SepReaderHeader.cs index 0d77cf4..0fd597c 100644 --- a/src/Sep/SepReaderHeader.cs +++ b/src/Sep/SepReaderHeader.cs @@ -41,6 +41,8 @@ internal static SepReaderHeader Parse(Sep sep, string line, IEqualityComparer _colNameToIndex[colName]; + public bool TryIndexOf(string colName, out int colIndex) => _colNameToIndex.TryGetValue(colName, out colIndex); + public IReadOnlyList NamesStartingWith(string prefix, StringComparison comparison = StringComparison.Ordinal) { var colNames = new List();