Search code examples
c#model-view-controller

is this possible to get index of foreach loop in c#?


i want to update my db table with foreach loop and what i need is to get index of foreach loop to get right index of declared array to sum with count of my db.

byte[] OldSelectedProductsCount = ThisFactor.BuffetServices.Where(q => q.FactorID == ThisFactor.FactorID).Select(q => q.Count).ToArray();

giveBackBuffets.ForEach(t => _Buffet.Update(new BuffetViewModel()
{
    BuffetID = t.BuffetID,
    Name = t.Name,
    Price = t.Price,
    Count = t.Count + OldSelectedProductsCount[idexofforeachloop],
 }));

Solution

  • You can try this instead of the foreach loop

        byte[] oldSelectedProductsCount = ThisFactor.BuffetServices.Where(q => q.FactorID == ThisFactor.FactorID).Select(q => q.Count).ToArray();
    
        for (int i = 0; i < giveBackBuffets.Count; i++)
        {
    
            _Buffet.Update(new BuffetViewModel()
            {
                BuffetID = giveBackBuffets[i].BuffetID,
                Name = giveBackBuffets[i].Name,
                Price = giveBackBuffets[i].Price,
                Count = giveBackBuffets[i].Count + oldSelectedProductsCount[i],
            });
        }