这样会报错:
void Main() { var x=GetSpareInfoByCode(); Console.Write(x.Key);//报错:“object”未包含“Key”的定义 } public dynamic GetSpareInfoByCode(){ var words = from word in "The quick brown fox jumps over the lazy dog".Split() orderby word.ToUpper() select word; var duplicates = from word in words group word.ToUpper() by word.ToUpper() into g where g.Count() > 1 select new { g.Key, Count = g.Count() }; return duplicates; }
使用tolist
void Main() { //var x=GetSpareInfoByCode(); IEnumerable<object> y=GetSpareInfoByCode(); //foreach (var item in (IEnumerable<object>)x) foreach (var item in y) { Console.Write(item.GetType().GetProperty("Key").GetValue(item, null)); Console.Write(item.GetType().GetProperty("Count").GetValue(item, null)); } } public dynamic GetSpareInfoByCode(){ var words = from word in "The quick brown fox jumps over the lazy dog".Split() orderby word.ToUpper() select word; var duplicates = from word in words group word.ToUpper() by word.ToUpper() into g where g.Count() > 1 select new { g.Key, Count = g.Count() }; return duplicates.ToList(); }
有木有更简单高效的方式呢