Упростить алгоритм взаимодействия двух разных списков - C#
Формулировка задачи:
Здравствуйте. Я тут наваял небольшой скрипт. Который отрабатывается 10 раз в секунду.
помогите его оптимизировать.
BaseDota.Lobby.members содержит список экземпляров CDOTALobbyMember
и мне надо понять - когда кто то ворвался в список, а когда покинул, Вот выше грубый метод. Я видел примеры как сравнить 2 одинаковых List. Но вот как сравнить 2 чучуть разных списка - хз. Видимо какнибудь через Linq но знаний видимо маловато.
Я тут пока еще покапаюсь по инэту - может чего нибудь и найду. А вы - вы уважаемые форумчани - помогите мне, отсыпьте чучуть ваших знаний. Кому сколько не жалко.
List<ulong> ListJoined = new List<ulong>(); Libiray.Interval(() => { BaseDota.Lobby.members.ForEach(o => { if (o.id != SteamInstance.BaseClient.SteamID.ConvertToUInt64()) { if (!ListJoined.Contains(o.id)) { Console.WriteLine("User ["+o.name+" / "+o.id+"] has joined to lobby!"); ListJoined.Add(o.id); } } }); List<ulong> leavelist = new List<ulong>(); ListJoined.ForEach(o => { if (BaseDota.Lobby.members.FirstOrDefault(o2 => o2.id == o) == null) { Console.WriteLine("User [" + o + "] has leave to lobby!"); leavelist.Add(o); } }); foreach (var r in leavelist) ListJoined.Remove(r); }, 0.1);
Совсем не кто не знает?
Решение задачи: «Упростить алгоритм взаимодействия двух разных списков»
textual
Листинг программы
using System.Collections.ObjectModel; private static void Data_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { Console.WriteLine("Collection was modified!!!"); if (e.NewItems != null) { Console.Write("Added elements: "); foreach (var item in e.NewItems) { Console.Write(item); Console.Write(" "); } } if (e.OldItems != null) { Console.Write("Removed elements: "); foreach (var item in e.OldItems) { Console.Write(item); Console.Write(" "); } } Console.WriteLine(); } static void Main() { var data = new ObservableCollection<int>() { 1,2,3,4,5}; data.CollectionChanged += Data_CollectionChanged; data.Add(3); data.Remove(1); Console.ReadKey(true); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д