public static void WriteCSV <T>(IEnumerable <T> items, TextInfo work, StreamWriter writer) { Type itemType = typeof(T); var props = itemType.GetProperties(BindingFlags.Public | BindingFlags.Instance); var grpprops = work.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.Name != "TextSummary"); foreach (var item in items) { writer.WriteLine(string.Join(";", grpprops.Select(gp => gp.GetValue(work, null))) + ";" + string.Join(";", props.Select(p => p.GetValue(item, null)))); } }