csharp square every digit of a number

Code Example - csharp square every digit of a number

                
                        //c#  square every digit of a number 
public static int SquareDigits(int n)
        {
            var val = n.ToString();

            var result = "";

            for (var i = 0; i < val.Length; i++)
            {
                char c = val[i];
                int num = int.Parse(c.ToString());
                result += (num * num);
            }
            return int.Parse(result);
        }
  ------------------------------------------------Option 2
  public static int SquareDigits(int n)
        {
            var result =
         n
        .ToString()
        .ToCharArray()
        .Select(Char.GetNumericValue)
        .Select(a => (a * a).ToString())
        .Aggregate("", (acc, s) => acc + s);
            return int.Parse(result);
        }
-------------------------------------------------option 3
public static int SquareDigits(int n)
        {
            List<int> list = new List<int>();
            while (n != 0)
            {
                int remainder = n % 10;
                n = n / 10;
                list.Add((remainder * remainder));
            }
            return int.Parse(String.Join("", list.ToArray()));
        }