try
DataTable dt = new DataTable();
dt.Columns.Add("name");
dt.Columns.Add("state");
dt.Columns.Add("ClosetSize");
dt.Columns.Add("childGender");
dt.Rows.Add("Hank", "OK", 2, "M");
dt.Rows.Add("Hank", "OK", 1, "F");
dt.Rows.Add("Wilbur", "tx", 1, "F");
dt.Rows.Add("Wilbur", "tx", 2, "F");
dt.Rows.Add("Tom", "ca", 3, "M");
dt.Rows.Add("Tom", "ca", 4, "M");
dt.Rows.Add("Zed", "VT", 1, "M");
dt.Rows.Add("Zed", "VT", 2, "M");
dt.Rows.Add("Zed", "VT", 3, "F");
DataTable dtOutput = dt.Clone();
string[] names = dt.Rows.OfType<DataRow>().Select(k => k["name"] + "").Distinct().ToArray();
foreach (string name in names)
{
var tempRows = dt.Select("name='" + name + "'");
if (tempRows.Length > 1)
{
string[] genders = tempRows.Select(k => k["childGender"] + "").Distinct().ToArray();
if (genders.Contains("M") && genders.Contains("F"))
foreach (DataRow row in tempRows)
dtOutput.Rows.Add(row.ItemArray);
}
}
refer this to convert csv to datatable and vice versa
Read CSV File into Data Table[
^]
Export Datatable to CSV Using Extension Method[
^]