Вы ищете что-то подобное ...
List<Point3D> points = mypts.Select<mystruct, Point3D> (x =>
new Point3D(x.m_i, x.m_j, x.m_k))
.ToList();
В качестве альтернативы, вы можете выставить итератор, который возвращает IEnumerable, как это ...
public IEnumerable<Point3D> Points()
{
foreach(var point in mypts)
{
yield return new Point3D(point.m_i, point.m_j, point.m_k, );
}
}
[добавить соответствующий код проверки / обработки ошибок]