First you need to devide the task into sub-task (smaller ones) and then decide which rows will be static and which will be dynamic. The dynamic ones can be solved with the for loop + using the i (the changeable iterator i); and the static ones can be printed as they are :-)

Here is my screenshot - the yellow rows are the static ones - the easier ones and the others are the dynamic ones (harder to solve); Simply think about the interconnections between the n, i and some values and the task won't seem so hard... It took me around 1 hour to find the solution...
Here it is:
using System;
class Dumbbell
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
Console.WriteLine("{0}{1}{2}{1}{0}",
new string(('.'), n / 2),
new string(('&'), n / 2 + 1),
new string(('.'), n));
for (int i = 0; i < n / 2 - 1; i++)
{
Console.WriteLine("{0}&{1}&{2}&{1}&{0}",
new string(('.'), n / 2 - 1 - i),
new string(('*'), n / 2 + i),
new string(('.'), n));
}
Console.WriteLine("&{0}&{1}&{0}&",
new string(('*'), n - 2),
new string(('='), n));
for (int i = 0; i < n / 2 - 1; i++)
{
Console.WriteLine("{0}&{1}&{2}&{1}&{0}",
new string(('.'), i+1),
new string(('*'), n-3-i),
new string(('.'), n));
}
Console.WriteLine("{0}{1}{2}{1}{0}",
new string (('.'),n/2),
new string (('&'),n/2+1),
new string (('.'),n));
}
}