1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web.Http.ValueProviders.Providers; 5 6 namespace ConsoleApp 7 { 8 internal class Program 9 { 10 private static void Main(string[] args) 11 { 12 var dic = new Dictionary<string, string> 13 { 14 {"contact.Name", "张三"}, 15 {"contact.PhoneNo", "123456789"}, 16 {"contact.EmailAddress", "zhangsan@gmail.com"}, 17 {"contact.Address.Province", "上海"}, 18 {"contact.Address.City", "上海"}, 19 {"contact.Address.District", "长宁区"}, 20 {"contact.Address.Street", "金钟路968号"} 21 }; 22 var valueProvider = new NameValuePairsValueProvider(dic.ToArray(), null); 23 24 // prefix="" 25 Console.WriteLine("Prefix: <Empty>"); 26 Console.WriteLine("{0,-14}{1}", "key", "value"); 27 var keys = valueProvider.GetKeysFromPrefix(string.Empty); 28 foreach (var item in keys) 29 { 30 Console.WriteLine("{0,-14}{1}", item.Key, item.Value); 31 } 32 33 // Prefix="contact" 34 Console.WriteLine("Prefix: contact"); 35 Console.WriteLine("{0,-14}{1}", "key", "value"); 36 keys = valueProvider.GetKeysFromPrefix("contact"); 37 foreach (var item in keys) 38 { 39 Console.WriteLine("{0,-14}{1}", item.Key, item.Value); 40 } 41 42 // Prefix="contact" 43 Console.WriteLine("Prefix: contact.Address"); 44 Console.WriteLine("{0,-14}{1}", "key", "value"); 45 keys = valueProvider.GetKeysFromPrefix("contact.Address"); 46 foreach (var item in keys) 47 { 48 Console.WriteLine("{0,-14}{1}", item.Key, item.Value); 49 } 50 51 Console.Read(); 52 } 53 } 54 }