public List <Edge <T> > Kruskal(Graph <T> graph, List <T> comb = null) { var edges = new HashSet <Edge <T> >(graph.Edges).ToList(); var numberOfVertices = graph.AdjacencyList.Count; edges.Sort(); Dictionary <T, T> parent = new Dictionary <T, T>(numberOfVertices); if (comb != null) { foreach (var station in comb) { var start = FindRoot(station, parent); var end = FindRoot(comb[0], parent); parent[end] = start; } } var spanningTree = new List <Edge <T> >(); foreach (var edge in edges) { var startNodeRoot = FindRoot(edge.EdgeFrom, parent); var endNodeRoot = FindRoot(edge.EdgeTo, parent); if (!startNodeRoot.Equals(endNodeRoot)) { spanningTree.Add(edge); parent[endNodeRoot] = startNodeRoot; } } return(spanningTree); }
public void Solve() { List <int> multiplesOf3 = MultiplesBelow(3, 10); List <int> multiplesOf5 = MultiplesBelow(5, 10); var multiples = new HashSet <int>(multiplesOf3.Concat(multiplesOf5).ToList()).ToList(); multiples.Sort(); Console.WriteLine("Multiples of 3 or 5 under 10: "); Console.WriteLine(string.Join(",", multiples.ToArray())); Console.WriteLine("Sum: " + multiples.Sum()); multiplesOf3 = MultiplesBelow(3, 1000); multiplesOf5 = MultiplesBelow(5, 1000); multiples = new HashSet <int>(multiplesOf3.Concat(multiplesOf5).ToList()).ToList(); multiples.Sort(); Console.WriteLine("Multiples of 3 or 5 under 1000: "); Console.WriteLine(string.Join(",", multiples.ToArray())); Console.WriteLine("Sum: " + multiples.Sum()); }
public List <string> GetAllMaterialNames() { EnsurePredefinedMaterials(); var list = new HashSet <string>(materials .Select(o => o.Name)).ToList(); list.Sort((a, b) => { if (materialOrder.Contains(a)) { if (materialOrder.Contains(b)) { return(materialOrder.IndexOf(a).CompareTo(materialOrder.IndexOf(b))); } else { return(-1); } } else { return(1); } }); return(list); }
private void ExtractEmailAddressButton_Click(object sender, EventArgs e) { if (!ofd.CheckFileExists) { MessageBox.Show("Invalid file: " + ofd.FileName); return; } ProcessStartInfo startInfo = grepStartInfo(ofd.FileName); Console.WriteLine("Grep arguments: " + startInfo.Arguments); var emails = new HashSet <string>(getTextfromProcess(startInfo)).ToList(); emails.Sort(); Console.WriteLine("extract email Count" + emails.Count); populateEmailView(emailListView, emails.ToArray()); if (emails.Count > 0) { emailCountLabel.Text = "Unique Email Count: " + emails.Count; downloadEmailAddressButton.Enabled = true; } else { emailCountLabel.Text = "No Emails found"; } }
public async Task <IEnumerable <ContactList> > GetContactsGroups(bool forceReload = false) { List <ContactList> result = new List <ContactList>(); // Reload contact list if requested, otherwise reuse if (forceReload == true || LoadedContacts == null || !LoadedContacts.Any()) { LoadedContacts = await _platformContactService.GetContacts(); } foreach (var contact in LoadedContacts) { contact.IsFavorite = false; } // Get favorite contact var favoriteContact = LoadFavoriteContact(); // Update favorite contact in list if (favoriteContact != null) { var matchingContact = LoadedContacts.FirstOrDefault(x => x.Number == favoriteContact.Number); if (matchingContact != null) { matchingContact.IsFavorite = true; favoriteContact = matchingContact; var favoriteContactList = new ContactList { favoriteContact }; favoriteContactList.Heading = "Favorite"; result.Add(favoriteContactList); } } var headers = LoadedContacts.Select(x => GetHeading(x)); var uniqueHeaders = new HashSet <string>(headers).ToList(); uniqueHeaders.Sort((x, y) => string.Compare(x, y)); foreach (var uniqueHeader in uniqueHeaders) { var group = new ContactList { Heading = uniqueHeader }; group.AddRange(LoadedContacts.Where(x => !string.IsNullOrEmpty(x.Name) && x.Name[0].ToString() == uniqueHeader)); result.Add(group); } return(result); }
private void Validate() { if (is_dirty) { is_dirty = false; center = vertexs.Average(); faces.Set( vertexs .Sort(v => - (v - center).GetAngleInDegrees()) .CloseLoop() .ConvertConnections((v0, v1) => FaceExtensions.CreatePointsAndInsidePoint(v0, v1, center)) ); } }
public List <string> GetDistinctPositions() { using (var dbContext = new OTERTConnStr()) { try { dbContext.Configuration.ProxyCreationEnabled = false; List <string> Posotion1 = (from us in dbContext.Distances select us.Position1).ToList(); List <string> Posotion2 = (from us in dbContext.Distances select us.Position2).ToList(); Posotion1.AddRange(Posotion2); List <string> Positions = new HashSet <string>(Posotion1).ToList(); Positions.Sort(); return(Positions); } catch (Exception) { return(null); } } }
public static List <long> FindFactors_slow(long num) { List <long> factors = new List <long>(); for (long i = 2; i < num; i++) { if (num % i == 0) { factors.Add(i); //Console.WriteLine("Found a factor: " + i); } } factors = new HashSet <long>(factors).ToList(); factors.Sort(); return(factors); }
public static List <long> FindFactors(long num) { List <long> factors = new List <long>(); var square = (long)Math.Sqrt(num); long i = square, j = square; while (true) { var prod = i * j; if (prod == num) { factors.Add(i); factors.Add(j); //Console.WriteLine("Found a factor: " + i); //Console.WriteLine("Found a factor: " + j); } if (i == 0) { break; } if (prod >= num) { i--; if (i != 0) { j = num / i; } } else { j++; } } factors = new HashSet <long>(factors).ToList(); factors.Sort(); return(factors); }
//===============================================================================\\ public void CleanUpTickTracker(IEnumerable <int> activeIDs) { if (activeIDs == null || !activeIDs.Any()) { return; } List <int> ids = new HashSet <int>(activeIDs).ToList <int>(); ids.Sort(); // out of sync errors sometimes throw, unity forums // say to make a new list from the keys, instead // of using dict.keys in the foreach loop List <int> keys = new List <int>(this.TickTracker.Keys); foreach (int key in keys) { if (ids.BinarySearch(key) < 0 && this.TickTracker.ContainsKey(key)) { this.TickTracker.Remove(key); } } }
void SetupFilters() { // Game type { var ddb = panel.GetOrNull <DropDownButtonWidget>("FLT_GAMETYPE_DROPDOWNBUTTON"); if (ddb != null) { // Using list to maintain the order var options = new List <Pair <GameType, string> > { Pair.New(GameType.Any, ddb.GetText()), Pair.New(GameType.Singleplayer, "Singleplayer"), Pair.New(GameType.Multiplayer, "Multiplayer") }; var lookup = options.ToDictionary(kvp => kvp.First, kvp => kvp.Second); ddb.GetText = () => lookup[filter.Type]; ddb.OnMouseDown = _ => { Func <Pair <GameType, string>, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => filter.Type == option.First, () => { filter.Type = option.First; ApplyFilter(); }); item.Get <LabelWidget>("LABEL").GetText = () => option.Second; return(item); }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Date type { var ddb = panel.GetOrNull <DropDownButtonWidget>("FLT_DATE_DROPDOWNBUTTON"); if (ddb != null) { // Using list to maintain the order var options = new List <Pair <DateType, string> > { Pair.New(DateType.Any, ddb.GetText()), Pair.New(DateType.Today, "Today"), Pair.New(DateType.LastWeek, "Last 7 days"), Pair.New(DateType.LastFortnight, "Last 14 days"), Pair.New(DateType.LastMonth, "Last 30 days") }; var lookup = options.ToDictionary(kvp => kvp.First, kvp => kvp.Second); ddb.GetText = () => lookup[filter.Date]; ddb.OnMouseDown = _ => { Func <Pair <DateType, string>, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => filter.Date == option.First, () => { filter.Date = option.First; ApplyFilter(); }); item.Get <LabelWidget>("LABEL").GetText = () => option.Second; return(item); }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Duration { var ddb = panel.GetOrNull <DropDownButtonWidget>("FLT_DURATION_DROPDOWNBUTTON"); if (ddb != null) { // Using list to maintain the order var options = new List <Pair <DurationType, string> > { Pair.New(DurationType.Any, ddb.GetText()), Pair.New(DurationType.VeryShort, "Under 5 min"), Pair.New(DurationType.Short, "Short (10 min)"), Pair.New(DurationType.Medium, "Medium (30 min)"), Pair.New(DurationType.Long, "Long (60+ min)") }; var lookup = options.ToDictionary(kvp => kvp.First, kvp => kvp.Second); ddb.GetText = () => lookup[filter.Duration]; ddb.OnMouseDown = _ => { Func <Pair <DurationType, string>, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => filter.Duration == option.First, () => { filter.Duration = option.First; ApplyFilter(); }); item.Get <LabelWidget>("LABEL").GetText = () => option.Second; return(item); }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Map { var ddb = panel.GetOrNull <DropDownButtonWidget>("FLT_MAPNAME_DROPDOWNBUTTON"); if (ddb != null) { var options = new HashSet <string>(replays.Select(r => r.GameInfo.MapTitle), StringComparer.OrdinalIgnoreCase).ToList(); options.Sort(StringComparer.OrdinalIgnoreCase); options.Insert(0, null); // no filter var anyText = ddb.GetText(); ddb.GetText = () => string.IsNullOrEmpty(filter.MapName) ? anyText : filter.MapName; ddb.OnMouseDown = _ => { Func <string, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => string.Compare(filter.MapName, option, true) == 0, () => { filter.MapName = option; ApplyFilter(); }); item.Get <LabelWidget>("LABEL").GetText = () => option ?? anyText; return(item); }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Players { var ddb = panel.GetOrNull <DropDownButtonWidget>("FLT_PLAYER_DROPDOWNBUTTON"); if (ddb != null) { var options = new HashSet <string>(replays.SelectMany(r => r.GameInfo.Players.Select(p => p.Name)), StringComparer.OrdinalIgnoreCase).ToList(); options.Sort(StringComparer.OrdinalIgnoreCase); options.Insert(0, null); // no filter var anyText = ddb.GetText(); ddb.GetText = () => string.IsNullOrEmpty(filter.PlayerName) ? anyText : filter.PlayerName; ddb.OnMouseDown = _ => { Func <string, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => string.Compare(filter.PlayerName, option, true) == 0, () => { filter.PlayerName = option; ApplyFilter(); }); item.Get <LabelWidget>("LABEL").GetText = () => option ?? anyText; return(item); }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Outcome (depends on Player) { var ddb = panel.GetOrNull <DropDownButtonWidget>("FLT_OUTCOME_DROPDOWNBUTTON"); if (ddb != null) { ddb.IsDisabled = () => string.IsNullOrEmpty(filter.PlayerName); // Using list to maintain the order var options = new List <Pair <WinState, string> > { Pair.New(WinState.Undefined, ddb.GetText()), Pair.New(WinState.Lost, "Defeat"), Pair.New(WinState.Won, "Victory") }; var lookup = options.ToDictionary(kvp => kvp.First, kvp => kvp.Second); ddb.GetText = () => lookup[filter.Outcome]; ddb.OnMouseDown = _ => { Func <Pair <WinState, string>, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => filter.Outcome == option.First, () => { filter.Outcome = option.First; ApplyFilter(); }); item.Get <LabelWidget>("LABEL").GetText = () => option.Second; return(item); }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Faction (depends on Player) { var ddb = panel.GetOrNull <DropDownButtonWidget>("FLT_FACTION_DROPDOWNBUTTON"); if (ddb != null) { ddb.IsDisabled = () => string.IsNullOrEmpty(filter.PlayerName); var options = new HashSet <string>(replays.SelectMany(r => r.GameInfo.Players.Select(p => p.FactionName).Where(n => !string.IsNullOrEmpty(n))), StringComparer.OrdinalIgnoreCase).ToList(); options.Sort(StringComparer.OrdinalIgnoreCase); options.Insert(0, null); // no filter var anyText = ddb.GetText(); ddb.GetText = () => string.IsNullOrEmpty(filter.Faction) ? anyText : filter.Faction; ddb.OnMouseDown = _ => { Func <string, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => string.Compare(filter.Faction, option, true) == 0, () => { filter.Faction = option; ApplyFilter(); }); item.Get <LabelWidget>("LABEL").GetText = () => option ?? anyText; return(item); }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Reset button { var button = panel.Get <ButtonWidget>("FLT_RESET_BUTTON"); button.IsDisabled = () => filter.IsEmpty; button.OnClick = () => { filter = new Filter(); ApplyFilter(); }; } }
void SetupFilters() { // Game type { var ddb = panel.GetOrNull<DropDownButtonWidget>("FLT_GAMETYPE_DROPDOWNBUTTON"); if (ddb != null) { // Using list to maintain the order var options = new List<Pair<GameType, string>> { Pair.New(GameType.Any, ddb.GetText()), Pair.New(GameType.Singleplayer, "Singleplayer"), Pair.New(GameType.Multiplayer, "Multiplayer") }; var lookup = options.ToDictionary(kvp => kvp.First, kvp => kvp.Second); ddb.GetText = () => lookup[filter.Type]; ddb.OnMouseDown = _ => { Func<Pair<GameType, string>, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => filter.Type == option.First, () => { filter.Type = option.First; ApplyFilter(); }); item.Get<LabelWidget>("LABEL").GetText = () => option.Second; return item; }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Date type { var ddb = panel.GetOrNull<DropDownButtonWidget>("FLT_DATE_DROPDOWNBUTTON"); if (ddb != null) { // Using list to maintain the order var options = new List<Pair<DateType, string>> { Pair.New(DateType.Any, ddb.GetText()), Pair.New(DateType.Today, "Today"), Pair.New(DateType.LastWeek, "Last 7 days"), Pair.New(DateType.LastFortnight, "Last 14 days"), Pair.New(DateType.LastMonth, "Last 30 days") }; var lookup = options.ToDictionary(kvp => kvp.First, kvp => kvp.Second); ddb.GetText = () => lookup[filter.Date]; ddb.OnMouseDown = _ => { Func<Pair<DateType, string>, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => filter.Date == option.First, () => { filter.Date = option.First; ApplyFilter(); }); item.Get<LabelWidget>("LABEL").GetText = () => option.Second; return item; }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Duration { var ddb = panel.GetOrNull<DropDownButtonWidget>("FLT_DURATION_DROPDOWNBUTTON"); if (ddb != null) { // Using list to maintain the order var options = new List<Pair<DurationType, string>> { Pair.New(DurationType.Any, ddb.GetText()), Pair.New(DurationType.VeryShort, "Under 5 min"), Pair.New(DurationType.Short, "Short (10 min)"), Pair.New(DurationType.Medium, "Medium (30 min)"), Pair.New(DurationType.Long, "Long (60+ min)") }; var lookup = options.ToDictionary(kvp => kvp.First, kvp => kvp.Second); ddb.GetText = () => lookup[filter.Duration]; ddb.OnMouseDown = _ => { Func<Pair<DurationType, string>, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => filter.Duration == option.First, () => { filter.Duration = option.First; ApplyFilter(); }); item.Get<LabelWidget>("LABEL").GetText = () => option.Second; return item; }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Map { var ddb = panel.GetOrNull<DropDownButtonWidget>("FLT_MAPNAME_DROPDOWNBUTTON"); if (ddb != null) { var options = new HashSet<string>(replays.Select(r => r.GameInfo.MapTitle), StringComparer.OrdinalIgnoreCase).ToList(); options.Sort(StringComparer.OrdinalIgnoreCase); options.Insert(0, null); // no filter var anyText = ddb.GetText(); ddb.GetText = () => string.IsNullOrEmpty(filter.MapName) ? anyText : filter.MapName; ddb.OnMouseDown = _ => { Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => string.Compare(filter.MapName, option, true) == 0, () => { filter.MapName = option; ApplyFilter(); }); item.Get<LabelWidget>("LABEL").GetText = () => option ?? anyText; return item; }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Players { var ddb = panel.GetOrNull<DropDownButtonWidget>("FLT_PLAYER_DROPDOWNBUTTON"); if (ddb != null) { var options = new HashSet<string>(replays.SelectMany(r => r.GameInfo.Players.Select(p => p.Name)), StringComparer.OrdinalIgnoreCase).ToList(); options.Sort(StringComparer.OrdinalIgnoreCase); options.Insert(0, null); // no filter var anyText = ddb.GetText(); ddb.GetText = () => string.IsNullOrEmpty(filter.PlayerName) ? anyText : filter.PlayerName; ddb.OnMouseDown = _ => { Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => string.Compare(filter.PlayerName, option, true) == 0, () => { filter.PlayerName = option; ApplyFilter(); }); item.Get<LabelWidget>("LABEL").GetText = () => option ?? anyText; return item; }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Outcome (depends on Player) { var ddb = panel.GetOrNull<DropDownButtonWidget>("FLT_OUTCOME_DROPDOWNBUTTON"); if (ddb != null) { ddb.IsDisabled = () => string.IsNullOrEmpty(filter.PlayerName); // Using list to maintain the order var options = new List<Pair<WinState, string>> { Pair.New(WinState.Undefined, ddb.GetText()), Pair.New(WinState.Lost, "Defeat"), Pair.New(WinState.Won, "Victory") }; var lookup = options.ToDictionary(kvp => kvp.First, kvp => kvp.Second); ddb.GetText = () => lookup[filter.Outcome]; ddb.OnMouseDown = _ => { Func<Pair<WinState, string>, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => filter.Outcome == option.First, () => { filter.Outcome = option.First; ApplyFilter(); }); item.Get<LabelWidget>("LABEL").GetText = () => option.Second; return item; }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Faction (depends on Player) { var ddb = panel.GetOrNull<DropDownButtonWidget>("FLT_FACTION_DROPDOWNBUTTON"); if (ddb != null) { ddb.IsDisabled = () => string.IsNullOrEmpty(filter.PlayerName); var options = new HashSet<string>(replays.SelectMany(r => r.GameInfo.Players.Select(p => p.FactionName).Where(n => !string.IsNullOrEmpty(n))), StringComparer.OrdinalIgnoreCase).ToList(); options.Sort(StringComparer.OrdinalIgnoreCase); options.Insert(0, null); // no filter var anyText = ddb.GetText(); ddb.GetText = () => string.IsNullOrEmpty(filter.Faction) ? anyText : filter.Faction; ddb.OnMouseDown = _ => { Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (option, tpl) => { var item = ScrollItemWidget.Setup( tpl, () => string.Compare(filter.Faction, option, true) == 0, () => { filter.Faction = option; ApplyFilter(); }); item.Get<LabelWidget>("LABEL").GetText = () => option ?? anyText; return item; }; ddb.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 330, options, setupItem); }; } } // Reset button { var button = panel.Get<ButtonWidget>("FLT_RESET_BUTTON"); button.IsDisabled = () => filter.IsEmpty; button.OnClick = () => { filter = new Filter(); ApplyFilter(); }; } }
private List<string> GetPrefixList() { List<string> prefix = new List<string>(); for (int i = 0; i < partnumber_grid.Rows.Count; i++) { prefix.Add(partnumber_grid.Rows[i].Cells["number"].Value.ToString ().Substring (0,3)); } prefix = new HashSet<string>(prefix).ToList(); prefix.Add(""); prefix.Sort(); return prefix.ToList(); }