static void Main(string[] args) > { > Dictionary<string, string> AssignedTrackingColumns = new Dictionary<string,string>(); > Dictionary<string, string> TrackingLookupOrderColumns = new Dictionary<string, string>(); > > TrackingLookupOrderColumns.Add("A", "One"); > TrackingLookupOrderColumns.Add("B", "Two"); > TrackingLookupOrderColumns.Add("C", "Three"); > TrackingLookupOrderColumns.Add("D", "Four"); > > AssignedTrackingColumns.Add("A", "One"); > AssignedTrackingColumns.Add("C", "Three"); > > var result = TrackingLookupOrderColumns.Except(AssignedTrackingColumns); > > foreach (var x in result) > { > Console.WriteLine(string.Format("Key:{0} Value:{1}",x.Key,x.Value)); > } > Console.ReadLine(); > }It gave me an error in compile time that it needs an explicit cast.
private Dictionary<string, string> trackingLookupOrderColumns = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);This in the API controller.
public Dictionary<string, string> AvailableTrackingColumns = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); public Dictionary<string, string> AssignedTrackingColumns = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);And in the GetPrefs method of the API controller I was trying
Severity Code Description Project File Line Suppression State Error CS0266 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, string>>' to 'System.Collections.Generic.Dictionary<string, string>'. An explicit conversion exists (are you missing a cast?)Do you see what is different in my code?
prefsRetailViewModel.AvailableTrackingColumns = this.trackingLookupOrderColumns.Except(prefsRetailViewModel.AssignedTrackingColumns).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);