List <T> перезаписывает все элементы внутри цикла foreach до последнего значения

Я пытаюсь создать приложение для Windows, в котором есть поле со списком, и во время Load () я заполняю это поле со всеми строками подключения, доступными в моем файле app.Config.

Вот фрагмент app.Config:

<!-- Adding Multiple Servers in Connection String-->
<connectionStrings>
   <add name="SQLConnect-1"
         connectionString="Data Source=SAHIL; Initial Catalog=RecordComparisonTool; Integrated Security=SSPI"
         providerName="System.Data.SqlCLient"/>

   <add name="SQLConnect-2"
     connectionString="Data Source=SAHIL; Initial Catalog=RecordComparisonTool; User Id=test; Password=12123; Integrated Security=SSPI"
     providerName="System.Data.SqlCLient"/>

   <add name="SQLConnect-3"
     connectionString="Data Source=SAHIL; Initial Catalog=RecordComparisonTool; User Id=test; Password=32315;  Integrated Security=True"
     providerName="System.Data.SqlCLient"/>
 </connectionStrings>

Я создал класс CompareResult, в котором я пытаюсь получить все значения из app.Config и отображать его в поле со списком.

namespace RecordComparisonTool_Win
{
   public class ConnectionString
   {
        public string name { get; set; }
        public string conString { get; set; }
        public string provider { get; set; }
    }

    public class CompareResult
    {

        public List<ConnectionString> GetConnection()
        {
            List<ConnectionString> conStr = new List<ConnectionString>();
            ConnectionString conn = new ConnectionString();

            foreach (ConnectionStringSettings css in ConfigurationManager.ConnectionStrings)
            {
                if (!(css.Name == "LocalSqlServer" || css.Name == "LocalMySqlServer"))
                {
                    conn.name = css.Name;
                    conn.conString = css.ConnectionString;
                    conn.provider = css.ProviderName;

                    conStr.Add(conn);
                }
            }
            return conStr;
        }

    }
}

Проблема в том, что когда я пытаюсь связать его с полем Combo, он показывает три записи в соответствии с файлом app.Config, но все записи имеют то же значение, что и "SQLConnect-3". Я не могу найти причину, по которой список обновляется с помощью «SQLConnect-3» для всех записей. Пожалуйста, помогите исправить ошибку. Вот фрагмент, где я связываю этот список с ComboBox

protected void LoadConnection()
{
    CompareResult compareResult = new CompareResult();

    List<ConnectionString> connectionString = new List<ConnectionString>();
    connectionString = compareResult.GetConnection();

    cbTokenLeft.DataSource = connectionString;

    cbTokenLeft.DisplayMember = "name";
    cbTokenLeft.ValueMember = "conString";

}

Ответы на вопрос(3)

Ваш ответ на вопрос