The task is to create a DataTable with 1 column + header and 7 rows with content. The content will never changeImplementation:    private DataTable createTable()    {        var table = new DataTable();        table.Columns.Add(new DataColumn(Wochentage, typeof(string)));// Wochentage=> WeekDays        createRowAndAdd(table, Montag);        createRowAndAdd(table, Dienstag);        createRowAndAdd(table, Mittwoch);        createRowAndAdd(table, Donnerstag);        createRowAndAdd(table, Freitag);        createRowAndAdd(table, Samstag);        createRowAndAdd(table, Sonntag);        return table;    }    private void createRowAndAdd(DataTable table,string text)    {        DataRow newRow = table.NewRow();        newRow[0] = text;        table.Rows.Add(newRow);    }createRowAndAdd does 2 things:create a row (and add the text)add the row to the TableAlso, my createTable does more than just creating the table.A method should only do one thing, right? How would you improve this and do you think there is a line between clean coding and adding overhead with no need?Wochenuebersicht   public class Wochenuebersicht    {        public int KW { get; set; }        public DateTime BeginDate { get; set; }        public DateTime EndDate { get; set; }        public List<WochenMenu> WochenMenuListe { get; set; }        public DataTable Gesamt { get; set; }        public string Wochenangebot { get; set; }        public Wochenuebersicht()        {            DisplayTitle =Wochenbersicht;            WochenMenuListe = new List<WochenMenu>();            WochenMenuListe.Add(createTage());        }        private WochenMenu createTage()        {            var table = new DataTable();            table.Columns.Add(new DataColumn(Wochentage, typeof(string)));            createRowAndAdd(table, Montag);            createRowAndAdd(table, Dienstag);            createRowAndAdd(table, Mittwoch);            createRowAndAdd(table, Donnerstag);            createRowAndAdd(table, Freitag);            createRowAndAdd(table, Samstag);            createRowAndAdd(table, Sonntag);            var tage = new WochenMenu();            tage.MenuWochenDetails = table;            return tage;        }        private void createRowAndAdd(DataTable table,string text)        {            DataRow newRow = table.NewRow();            newRow[0] = text;            table.Rows.Add(newRow);        }    }WochenMenu public class WochenMenu    {        private Dictionary<int, Dictionary<string, int>> data;        public string Title { get; set; }        public DataTable MenuWochenDetails { get; set; }        public WochenMenu()        {        }        public WochenMenu(string title, Dictionary<int, Dictionary<string, int>> data)        {            Title = title;            this.data = data;        }        public void CreateDataTable()        {            if (data == null)                return;            var Gesamt = Gesamt;            var GesamtAPH = Gesamt APH;            MenuWochenDetails = new DataTable();            // create column header            foreach (string s in data[0].Keys)            {                if (s == KundenTyp.Essen_auf_Raedern.GetStringValue())                    MenuWochenDetails.Columns.Add(new DataColumn(GesamtAPH));                MenuWochenDetails.Columns.Add(new DataColumn(s));            }            MenuWochenDetails.Columns.Add(new DataColumn(Gesamt));            // Add data to DataTable            foreach (var dataLine in data)            {                DataRow newRow = MenuWochenDetails.NewRow();                foreach (var item in dataLine.Value)                {                    newRow[item.Key] = item.Value;                }                newRow[GesamtAPH] = dataLine.Value.Where(dic => dic.Key != KundenTyp.Essen_auf_Raedern.GetStringValue()).Sum(kvp => kvp.Value);                newRow[Gesamt] = dataLine.Value.Sum(kvp => kvp.Value);                MenuWochenDetails.Rows.Add(newRow);            }        }
Separation of concern on micro lvl
c#;design patterns