有没有办法做到这一点,比如以某种方式使用lambdas?如果我有一个字典,是否可以缩短我的代码,以便TryGetValue输出Foo.a而不是只返回对象?
现在感觉有点啰嗦,例如" a" as int:
int a;
Foo bar;
if(!dict.TryGetValue(key, out valueObj)) {
a = 0;
}
else {
a = bar.a;
}
答案 0 :(得分:2)
为什么你需要LINQ来实现这么简单的事情?
public Object GetObjectFromDict(string foo)
{
if (someDict.ContainsKey(foo))
{
return someDict[foo];
}
return null;
}
答案 1 :(得分:2)
您可以使用条件表达式和新的C#out var
功能稍微简化一下:
int a = dict.TryGetValue(key, out var valueObj) ? valueObj.a : 0;
这与您提供的解决方案基本相同,只能在一行上重写。
答案 2 :(得分:1)
这是一个班轮:
int a = dict.TryGetValue(key, out SomeClass valueObj) ? valueObj.a : 0;