Если у вас есть эти классы:
public class Row
{
public int ID { get; set; }
public string NAME { get; set; }
public string DESC { get; set; }
}
public class ComplexRow
{
public int ID1 { get; set; }
public string NAME1 { get; set; }
public string DESC1 { get; set; }
public int ID2 { get; set; }
public string NAME2 { get; set; }
public string DESC2 { get; set; }
public int ID3 { get; set; }
public string NAME3 { get; set; }
public string DESC3 { get; set; }
}
Вы можете сделать что-то вроде:
var data = new List<ComplexRow>();
var res = data.Select(x => new List<Row> {
new Row{ ID=x.ID1, NAME=x.NAME1,DESC=x.DESC1 },
new Row{ ID=x.ID2, NAME=x.NAME2,DESC=x.DESC2 },
new Row{ ID=x.ID3, NAME=x.NAME3,DESC=x.DESC3 },
})
.SelectMany(x=>x)
.ToList();
И если вам нужны только отдельные строки s, вы можете использовать Distinct ()