public Dictionary <string, string> LoadList(string list, TimeSpan maxAge = default(TimeSpan)) { Trace.WriteLine("Loading list"); SetList(list); if (maxAge != default(TimeSpan) && maxAge < GetAgeOfList(list)) { spList.RefreshLoad(); } var q = new CamlQuery(); ListItemCollection collListItem = spList.GetItems(q); clientContext.Load( collListItem, items => items.Include( item => item["Key"], item => item["Value"])); clientContext.ExecuteQuery(); var dictionary = new Dictionary <string, string>(); object keyName; object valueName; foreach (var item in collListItem) { item.FieldValues.TryGetValue("Key", out keyName); item.FieldValues.TryGetValue("Value", out valueName); Trace.WriteLine($"Populating list key {keyName.ToString()} value {valueName as string}"); dictionary.Add(keyName.ToString(), valueName as string); } return(dictionary); }