作者:cindy翻不清的旧伟_334 | 来源:互联网 | 2023-02-01 23:51
我对C#还有点新鲜......我发现自己一遍又一遍地重复使用特定的程序.在我为个人懒惰写一个辅助方法之前,是否有更短或更少的错误方式来编写这种陈述?
Dictionary data = someBigDictionary;
string createdBy;
data.TryGetValue("CreatedBy", out createdBy);
//do that for 15 other values
...
MyEntity me = new MyEntity{
CreatedBy = createdBy ?? "Unknown",
//set 15 other values
...
}
本质上,通过尝试获取值来设置对象的属性,然后如果它为null则使用默认值.我有很多属性,如果我可以的话会更好
MyEntity me = new MyEntity{
CreatedBy = TryToGetValueOrReturnNull(data, "CreatedBy") ?? "Unknown",
...
}
再次,我完全有能力编写自己的帮助函数.在我这样做之前,我正在寻找现有的本机功能或简写.
1> Evk..:
有许多类似的问题(比如这个和这个)提出了从扩展方法到继承字典和覆盖索引器的不同解决方案.然而,它们是在C#7之前编写的,而在C#7中,您可以在一行中完成:
CreatedBy = data.TryGetValue("CreatedBy", out var value) ? value : "Unknown"