IDataReader - GetColumnNames

Gets the column names in this collection.

Try it

public static void Main()
{
	string sql = "SELECT 1 AS IntColumn, 'FizzBuzz' AS StringColumn";
	
	using (var conn = new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()))
    {
        conn.Open();
        using (DbCommand command = conn.CreateCommand())
        {
            command.CommandText = sql;
            using (IDataReader reader = command.ExecuteReader())
            {
                reader.Read();

				//C# Extension Method: IDataReader - GetColumnNames
                List<string> result = reader.GetColumnNames().ToList();
				
				foreach(var colName in result)
				{
					Console.WriteLine(colName);
				}
            }
        }
    }
}

View Source
using System.Collections.Generic;
using System.Data;
using System.Linq;

public static partial class Extensions
{
    /// <summary>
    ///     Gets the column names in this collection.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <returns>An enumerator that allows foreach to be used to get the column names in this collection.</returns>
    public static IEnumerable<string> GetColumnNames(this IDataRecord @this)
    {
        return Enumerable.Range(0, @this.FieldCount)
            .Select(@this.GetName)
            .ToList();
    }
}