Crear una DataTable en C#

Vamos a crear una DataTable y agregarle columnas y filas manualmente

Primero declaramos la Tabla, la Columna y la Fila

DataTable tabla = new DataTable();

// Variables para las columnas y las filas
DataColumn column;
DataRow row;

Construimos la primera Columna asignándole Nombre y Tipo de datos y la agregamos a la Tabla

// Se tiene que crear primero la columna asignandole Nombre y Tipo de datos    
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "Codigo";
tabla.Columns.Add(column);

Tenemos que hacer lo mismo por cada Columna que queramos agregar

// Se tienen que crear todas las columnas que queramos
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Descripcion";
tabla.Columns.Add(column);
            
column = new DataColumn();
column.DataType = Type.GetType("System.Decimal");
column.ColumnName = "ValorUnitario";
tabla.Columns.Add(column);

Ahora agregamos los registros a nuestra Tabla, para eso creamos una Fila que tenga relación con la Tabla y por cada Columna llenamos los valores que queramos y por ultimo agregamos la Fila a la Tabla

// Se crea una fila por cada registro que necesitemos agregar    
for (int i = 1; i < 11; i++)
{
     row = tabla.NewRow();
     row["Codigo"] = i;
     row["Descripcion"] = "Nombre del codigo " + i.ToString();
     row["ValorUnitario"] = i * 2;
     tabla.Rows.Add(row);
}

Este es el resultado

Así queda el código completo

DataTable tabla = new DataTable();

// Variables para las columnas y las filas
DataColumn column;
DataRow row;

// Se tiene que crear primero la columna asignandole Nombre y Tipo de datos    
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "Codigo";
tabla.Columns.Add(column);

// Se tienen que crear todas las columnas que queramos
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Descripcion";
tabla.Columns.Add(column);
            
column = new DataColumn();
column.DataType = Type.GetType("System.Decimal");
column.ColumnName = "ValorUnitario";
tabla.Columns.Add(column);

// Se crea una fila por cada registro que necesitemos agregar    
for (int i = 1; i < 11; i++)
{
     row = tabla.NewRow();
     row["Codigo"] = i;
     row["Descripcion"] = "Nombre del codigo " + i.ToString();
     row["ValorUnitario"] = i * 2;
     tabla.Rows.Add(row);
}