public bool shuffle(List <Desk> deskList, List <PersonAndDesk> personAndDeskList) { for (int i = 0; i < deskList.Count; i++) { if (deskList[i].name == "random") { continue; } var shuffleResult = new ShuffleResult(); shuffleResult.deskName = deskList[i].name; shuffleResult.deskMax = deskList[i].max; shuffleResult.person = new ObservableCollection <Person>(); _shuffleResult.Add(shuffleResult); } foreach (var personAndDesk in personAndDeskList) { if (personAndDesk.selectDesk != 0) { _shuffleResult[personAndDesk.selectDesk - 1].person.Add( new Person { name = personAndDesk.name, image = personAndDesk.image }); } } int n = 0; foreach (var personAndDesk in personAndDeskList.OrderBy(_ => Guid.NewGuid()).ToList <PersonAndDesk>()) { if (personAndDesk.selectDesk == 0) { if (_shuffleResult[n].person.Count >= _shuffleResult[n].deskMax) { n++; if (n >= _shuffleResult.Count) { var s = new ShuffleResult { deskName = "", deskMax = int.MaxValue, person = new ObservableCollection <Person>() }; _shuffleResult.Add(s); } } _shuffleResult[n].person.Add( new Person { name = personAndDesk.name, image = personAndDesk.image }); } } return(true); }
public bool shuffle(List<Desk> deskList, List<PersonAndDesk> personAndDeskList) { for (int i = 0; i < deskList.Count; i++) { if (deskList[i].name == "random") { continue; } var shuffleResult = new ShuffleResult(); shuffleResult.deskName = deskList[i].name; shuffleResult.deskMax = deskList[i].max; shuffleResult.person = new ObservableCollection<Person>(); _shuffleResult.Add(shuffleResult); } foreach (var personAndDesk in personAndDeskList) { if (personAndDesk.selectDesk != 0) { _shuffleResult[personAndDesk.selectDesk - 1].person.Add( new Person { name = personAndDesk.name, image = personAndDesk.image }); } } int n = 0; foreach (var personAndDesk in personAndDeskList.OrderBy(_ => Guid.NewGuid()).ToList<PersonAndDesk>()) { if (personAndDesk.selectDesk == 0) { if (_shuffleResult[n].person.Count >= _shuffleResult[n].deskMax) { n++; if (n >= _shuffleResult.Count) { var s = new ShuffleResult { deskName = "", deskMax = int.MaxValue, person = new ObservableCollection<Person>() }; _shuffleResult.Add(s); } } _shuffleResult[n].person.Add( new Person { name = personAndDesk.name, image = personAndDesk.image }); } } return true; }