public void ShowOptionPairs(OptionData od) { OptionPairs.Clear(); var map = od.calls.Select(o => new OptionPair { Strike = o.strike.To<decimal>(), Expiry = o.expiry.To<DateTime>(), Call = o }).ToDictionary(p => p.Strike); foreach (var p in od.puts) { var strike = p.strike.To<decimal>(); if (map.ContainsKey(strike)) { map[strike].Put = p; } else { var x = new OptionPair { Strike = p.strike.To<decimal>(), Expiry = p.expiry.To<DateTime>(), Put = p }; map.Add(x.Strike, x); } } var optionPairs = map.Select(pair => pair.Value).ToList(); foreach (var pair in optionPairs) { OptionPairs.Add(pair); } }
public void ShowOptionPairs(OptionData od) { OptionPairs.Clear(); var map = od.calls.Select(o => new OptionPair { Strike = o.strike.To <decimal>(), Expiry = o.expiry.To <DateTime>(), Call = o }).ToDictionary(p => p.Strike); foreach (var p in od.puts) { var strike = p.strike.To <decimal>(); if (map.ContainsKey(strike)) { map[strike].Put = p; } else { var x = new OptionPair { Strike = p.strike.To <decimal>(), Expiry = p.expiry.To <DateTime>(), Put = p }; map.Add(x.Strike, x); } } var optionPairs = map.Select(pair => pair.Value).ToList(); foreach (var pair in optionPairs) { OptionPairs.Add(pair); } }