Исключение в клиенте WCF - PullRequest
0 голосов
/ 19 февраля 2010

Я использую службу WCf в моем windowsApplication ... Я получил исключение в моем клиенте, когда я пытаюсь добавить элементы в Listbox с помощью цикла ForEach ... Исключение составляет "Коллекция была изменена, перечисление может не выполняться". Как мне решить это исключение ....

И мой код,

            foreach (ClsPC pc in iclsobj.GetPC())
            {
            if (listBox1.Items.Count == 0)
            {
            listBox1.Items.Add(pc.IPAddress);
             }
            else
            {
            for (int i = 0; i < listBox1.Items.Count; i++)
            {
            if (!listBox1.Items[i].ToString().Contains(pc.IPAddress))
            {
            listBox1.Items.Add(pc.IPAddress);
             }
          }
        }
       }
 client.Close();

client = null;

}

1 Ответ

3 голосов
/ 19 февраля 2010

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

var pcs = iclsobj.GetPC().Select(pc => new { IPAddress = pc.IPAddress}).Distinct();

А потом просто привязать ваш список к этому.

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