首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字典TryGetValue输出参数

字典TryGetValue输出参数
EN

Stack Overflow用户
提问于 2020-01-24 04:28:16
回答 1查看 6.7K关注 0票数 3

TryGetValue是否改变输入参数?

在使用TryGetValue时,我倾向于这样做:

代码语言:javascript
复制
Dictionary<int, long> myDic;
long lValue = -1;
long lTemp1;

if( myDic.TryGetValue(100, out lTemp1)){
    lValue = lTemp1;
}

我应该直接这样写吗?

代码语言:javascript
复制
myDic.TryGetValue(nKeyToLookup, out lValue);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-24 04:45:33

文档所述

当此方法返回时,如果找到该键,则与指定键关联的值;否则为值参数类型的默认值。

该值将被更改。

如果您想缩短代码,可以这样做。

代码语言:javascript
复制
Dictionary<int, long> myDic;

if( !myDic.TryGetValue(100, out var lValue))
{
    lValue = -1;
}

更新

您可以编写一个自定义TryGetValue扩展方法,它接受一个ref TValue value

代码语言:javascript
复制
public static class DictionaryExtensions
{
    public static bool TryGetValue<TKey,TValue>( this IDictionary<TKey,TValue> dict, TKey key, ref TValue value )
    {
        var result = dict.TryGetValue( key, out var foundValue );
        if ( result )
            value = foundValue;
        return result;
    }
}

.net小提琴现场工作示例

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59890374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档