I have the following datatable, which has Units information. The Units have a surface in square meters. However the units can be split into subunits, in the datatable there is a ParentUnitID to know if that unit is splitted or not.
I need to validate that the sum of the surface of the child units, is equal to the surface of the parent unit.
In anoter forum they helped me with this code
var childrenByParentID = _unitDataSet.Unit.AsEnumerable().
GroupBy(child => child.Field<int?>("ParentUnitId")).
ToDictionary(group => group.Key);
// Parents = children with no parent
var parents = childrenByParentID[null];
// Look for the first group which sum of surfaces is not the same as the parent's surface
var invalidGroup = childrenByParentID.FirstOrDefault(group =>
bool invalid = false;
if (group.Key != null)
// Not the parents group
var parent = parents.Single(parent => parent.Field<int>("UnitID") == group.Key);
var totalSurface = group.Sum(group => group.Field<int>("Surface"));
invalid = (totalSurface != parent.Field<int>("Surface"));
if (invalidGroup != null)
// .. do something special
However I got this error.