public void PopulatePairGraph(List <string> pairs) { var pairs_parsed = pairs.Select(p => new KeyValuePair <string, string>(p.Split(':')[0], p.Split(':')[1])); ActualPairs = pairs_parsed.ToList(); pairs_parsed = pairs_parsed.Concat(pairs_parsed.Select(p => new KeyValuePair <string, string>(p.Value, p.Key))); foreach (var pair in pairs_parsed) { string right = pair.Value; if (!PairGraph.ContainsKey(pair.Key)) { PairGraph.Add(pair.Key, new HashSet <string>()); } if (!PairGraph.ContainsKey(right)) { PairGraph.Add(right, new HashSet <string>()); } PairGraph[pair.Key].Add(right); PairGraph[right].Add(pair.Key); Currencies.Add(pair.Key); Currencies.Add(right); } }
private void GetWay_Click(object sender, EventArgs e) { try { List <Pair> pairs = Pair.PairsFromString(Input.Text); PairGraph graph = new PairGraph(pairs); List <int> Way = graph.GetMaxWay(); MessageBox.Show(String.Join(" ", Way)); } catch (Exception) { MessageBox.Show("Error"); } }
public void PopulatePairGraph(List <string> pairs) { var pairs_parsed = pairs.Select(p => new KeyValuePair <string, string>(p.Split(':')[0], p.Split(':')[1])); ActualPairs = pairs_parsed.ToList(); pairs_parsed = pairs_parsed.Concat(pairs_parsed.Select(p => new KeyValuePair <string, string>(p.Value, p.Key))); foreach (var pair in pairs_parsed) { string left = pair.Key; string right = pair.Value; if (left.Length > 3) { if (!TickerTranslations.ContainsKey(left.Substring(0, 3))) { TickerTranslations.Add(left.Substring(0, 3), left); } left = left.Substring(0, 3); } if (right.Length > 3) { if (!TickerTranslations.ContainsKey(right.Substring(0, 3))) { TickerTranslations.Add(right.Substring(0, 3), right); } right = right.Substring(0, 3); } if (!PairGraph.ContainsKey(left)) { PairGraph.Add(left, new HashSet <string>()); } if (!PairGraph.ContainsKey(right)) { PairGraph.Add(right, new HashSet <string>()); } PairGraph[left].Add(right); PairGraph[right].Add(left); Currencies.Add(left); Currencies.Add(right); } }