You can use Where-Object and Measure-Object to get that information:

$mydatalist.MyDataList.MyData |
Where-Object { $_.SomeData4 -eq 0 } |
Measure-Object -Sum -Property SomeData1,SomeData2,SomeData3

With that command you would get 3 objects, one for each property name. Each object would have a Sum property. If you wanted a single object, you could do something like this to convert it:

$sums = $mydatalist.MyDataList.MyData |
Where-Object { $_.SomeData4 -eq 0 } |
Measure-Object -Sum -Property SomeData1,SomeData2,SomeData3
[pscustomobject] @{
SomeData1Sum = $sums | Where-Object { $_.Property -eq 'SomeData1' } | Select-Object -ExpandProperty Sum
SomeData2Sum = $sums | Where-Object { $_.Property -eq 'SomeData2' } | Select-Object -ExpandProperty Sum
SomeData3Sum = $sums | Where-Object { $_.Property -eq 'SomeData3' } | Select-Object -ExpandProperty Sum
}

Or, if you prefer, use your own loop and total the properties up:

$totalOne = $totalTwo = $totalThree = 0
foreach ($object in $mydatalist.MyDataList.MyData)
{
if ($object.SomeData4 -ne 0) { continue }
$totalOne += $object.SomeData1
$totalTwo += $object.SomeData2
$totalThree += $object.SomeData3
}
[pscustomobject] @{
SomeData1Sum = $totalOne
SomeData2Sum = $totalTwo
SomeData3Sum = $totalThree
}

Many ways to skin a cat.