Kolekcji nie można aktualizować.Więc jak rozwiązać problem?

0

W skrócie
-Czytam produkt z bazy wraz ze strukturą kategorii
-Dodaje kategorie przez API i przypisuje zwrócone idEsklpu
-Dodaje 2 produkt ,który ma te same kategorie ale lista jest nie aktualna bo powtarzające się kategorie nie mają w tym produkcie przypisanego idEsklepu.W wyniku czego zakłada ponownie te same kategorie

Stworzyłem dla wyjaśnienia lisy i bardziej opisałem o co mi chodzi. https://pastebin.com/jTWWbajF Te Reversy() dodałem tylko,żeby od razu sprawdzić czy dodało się id "Glowna"

4

Przede wszystkim nie używaj foreach do modyfikacji kolekcji.

0
somekind napisał(a):

Przede wszystkim nie używaj foreach do modyfikacji kolekcji.:

Możesz rozwinąć swoją myśl? Problem rozwiązałem enumerując na kopiach list lista.ToList().

Doczytałem
MSDN:

The foreach statement is used to iterate through the collection to get the information that you want, but can not be used to add or remove items from the source collection to avoid unpredictable side effects. If you need to add or remove items from the source collection, use a for loop.

Czyli forech moge zostawić do wysyłania obiektów do api?Jednak w momencie dodawania,usuwania lub przypasywania innych wartości powinienem użyć for coś takiego ?
Przerobiłem tą aktualizację


                            for (int i = 0; i < listInSql.ToList().Count; i++)
                            {
                                var entryToProcess = listInSql[i];

                                LogManager.GetCurrentClassLogger().Info("nowa petla for ");
                                for (int a = 0; a < entryToProcess.listGroup.ToList().Count; a++)
                                {
                                    var inEntry = entryToProcess.listGroup[a];
                                    if (inEntry.ElementAt(0) == category[0])
                                    {
                                        inEntry[2] = parentId;
                                    }
                                }
                            }

1 użytkowników online, w tym zalogowanych: 0, gości: 1