C#学习教程:将属性作为参数传递给方法目前我的班级有很多这样的方法:privatestaticvoidUpdateArtists(){artists.Clear();foreach(library_entries中的AudioInfo条目){artists.Add(entry.Artist,entry);}}privatestaticvoidUpdateAlbums(){albums.Clear();foreach(library_entries中的AudioInfo条目){albums.Add(entry.Album,entry);}}privatestaticvoidUpdateGenres(){genres.Clear();foreach(library_entries中的AudioInfo条目){genres.Add(entry.Genre,entry);}}privatestaticvoidUpdateYears(){years.Clear();foreach(library_entries中的AudioInfo条目){years.Add(entry.Year,entry);,写几十个是很烦人的。所以我想知道我是否可以简化它并制作这样的方法:privatestaticvoidUpdate(Dictionarydictionary,AudioInfo.Propertyproperty){dictionary.Clear();foreach(library_entries中的AudioInfo条目){dictionary.Add(entry.property,entry);}//其中“属性”是AudioInfo类中的一个属性。这可能吗,如果是的话;如何?谢谢!如果您需要做这些事情,那么您的课程中似乎存在一些设计错误。但是,解决方案是:privatestaticvoidUpdate(Dictionarydictionary,Funcfunc){dictionary.Clear();foreach(library_entries中的AudioInfo条目){dictionary.Add(func(entry),entry);}}用法是:Update(years,x=>x.Year);您还可以使用更简单的方法而不是调用您可以编写的任何方法:years=library_entries.ToDictionary(x=>x.Year,x=>x);如果您没有任何事件链接到您的字典。还有一件事要做——您不能将不同的元素添加到具有相同键的字典中。在你的情况下,你似乎有不同的AudioInfo对象,具有相同的年份、流派等。以上就是C#学习教程:将属性作为参数传递给方法分享,如果它对每个人都有用,需要进一步了解C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
