Компактная запись метода - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Подскажите пожалуйста, как с помощью Linq более компактно и кратко записать сей метод
 DateTime limit = DateTime.Now.AddMinutes((-1) * Properties.Settings.Default.minDeleteOlderRecords);
            if (!m_List.Any() == true)
            {
                this.m_List.AddRange(insert);
            }
            else
            {
                foreach (OktellChainCommutation ins in insert)
                {
                    foreach (OktellChainCommutation m in m_List)
                    {
                        if (ins.ChainId == m.ChainId)
                        {
                            //  ClientNumber 
                            //  CallTimeStart
                            m.CallTimeEnd = ins.CallTimeEnd;
                            // FirstNumber 
                            m.LastNumber = ins.LastNumber;
                            // CallTypeId 
                            // InputTime 
                            m.Commutation = ins.Commutation;
                        }
                        else
                        {
                            m.ClientNumber = ins.ClientNumber;
                            m.CallTimeStart = ins.CallTimeStart;
                            m.CallTimeEnd = ins.CallTimeEnd;
                            m.FirstNumber = ins.FirstNumber;
                            m.LastNumber = ins.LastNumber;
                            m.CallTypeId = ins.CallTypeId;
                            m.InputTime = ins.InputTime;
                            m.Commutation = ins.Commutation;
                        }
 
                    }
                }
            }
            this.m_List.RemoveAll(x => x.InputTime < limit);
видимо форум еще не проснулся...

Решение задачи: «Компактная запись метода»

textual
Листинг программы
 DateTime limit = DateTime.Now.AddMinutes((-1) * Properties.Settings.Default.minDeleteOlderRecords);
            if (!m_List.Any() == true)
            {
                this.m_List.AddRange(insert);
            }
            else
            {
                // this.m_List.AddRange(insert.Where(x => this.m_List.Any(y => y.ChainId == x.ChainId) == true)); //может что нибудь такое?
 
                var list = m_List.Join(insert, o => o.ChainId, i => i.ChainId, (o, i) => new { Exists = o, Inserted = i });
                foreach (var item in list)
                {
                    item.Exists.CallTimeEnd = item.Inserted.CallTimeEnd;
                    item.Exists.LastNumber = item.Inserted.LastNumber;
                    item.Exists.Commutation = item.Inserted.Commutation;
                }
            }
            this.m_List.RemoveAll(x => x.InputTime < limit);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5