Как проверить, существует ли элемент, чтобы не дублировать его в коллекции элементов управления в C#? - PullRequest
2 голосов
/ 11 июля 2020

Я пытаюсь составить список в c#, где данные берутся из базы mysql. Я создал код, но похоже, что полученный элемент дублируется, как я могу передать его без дублирования (или добавить только один раз)?

cmpSearchItem[] listItems = new cmpSearchItem[10];

for (int i = 0; i < listItems.Length; i++)
{
    listItems[i] = new cmpSearchItem();
    listItems[i].Width = container_main.Width;
    listItems[i].cmpID = cmpId;
    listItems[i].cmpName = cmpName;
    listItems[i].cmpDescription = cmpDescription;
    listItems[i].cmpMembers = cmpMembers + "/32";
    listItems[i].cmpCountry = cmpCountry;
    listItems[i].cmpCreated = cmpCreated;

    container_main.Controls.Add(listItems[i]);
}

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Вы должны проверить, отсутствует ли элемент в коллекции, прежде чем добавлять его, в случае, если коллекция не делает этого за вас (проверьте документацию или реализацию метода используемого класса):

if ( !container_main.Controls.Contains(listItems[i]) )
  container_main.Controls.Add(listItems[i]);
0 голосов
/ 11 июля 2020

Container_main - это коллекция.

Поэтому перед выполнением .Add просто выполните:

if ( container_main.Contains() == false )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...