public int[] GetDimensions(EnvDTE.Expression expression) { if (expression == null) { throw new ArgumentNullException("expression"); } int[] dims; switch (GetExpressionType(expression)) { case ExpressionType.Matrix: dims = new int[2]; EnvDTE.Expressions members = expression.DataMembers.Item("Item").DataMembers; dims[0] = ParseDimension(members.Item("NumRows").Value); dims[1] = ParseDimension(members.Item("NumCols").Value); break; case ExpressionType.Vector: dims = new int[1]; dims[0] = expression.DataMembers.Count - 1; break; default: throw new NotSupportedException(string.Format("'{0} is not supported.'", expression.Type)); } return(dims); }
public int[] GetDimensions(EnvDTE.Expression expression) { if (expression == null) { throw new ArgumentNullException(nameof(expression)); } ThreadHelper.ThrowIfNotOnUIThread(); int[] dims; switch (GetExpressionType(expression)) { case ExpressionType.Matrix: dims = new int[2]; EnvDTE.Expressions members = expression.DataMembers.Item("Item").DataMembers; dims[0] = ParseDimension(members.Item("NumRows").Value); dims[1] = ParseDimension(members.Item("NumCols").Value); break; case ExpressionType.Vector: dims = new int[1]; dims[0] = expression.DataMembers.Count - 1; break; default: throw new NotSupportedException($"'{expression.Type} is not supported.'"); } return(dims); }