加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#-4.0 – Tuple和KeyValuePair之间的转换

发布时间:2020-12-15 07:53:01 所属栏目:百科 来源:网络整理
导读:KeyValuePair T1,T2之间是否存在内置转换或转换?和元组 T1,T2? 我知道这将是一个简单的扩展方法: public static KeyValuePairT1,T2 ToPairT1,T2(this TupleT1,T2 source){ return new KeyValuePairT1,T2(source.Item1,source.Item2);}public static Tuple
KeyValuePair< T1,T2>之间是否存在内置转换或转换?和元组< T1,T2>?

我知道这将是一个简单的扩展方法:

public static KeyValuePair<T1,T2> ToPair<T1,T2>(this Tuple<T1,T2> source)
{
    return new KeyValuePair<T1,T2>(source.Item1,source.Item2);
}

public static Tuple<T1,T2> ToTuple<T1,T2>(this KeyValuePair<T1,T2> source)
{
    return Tuple.Create(source.Key,source.Value);
}

但是由于对象可以用于类似的目的(特别是因为KeyValuePair<>经常被用来代替2元素Tuple<>直到它添加到C#4.0),我想知道这样的转换器是否已经内置于框架?

我问的原因是我正在使用一个使用KeyValuePair<>的旧库(针对.NET 3.5).在很多地方,元组可能更合适,我想使用Tuple<>在新的代码中.所以我试图弄清楚我是否可以将这些方法中的返回kvp值转换或转换为Tuple,或者我是否需要定义自己的转换(或更改旧代码).

解决方法

我所知道的BCL中没有内置转换,并且肯定没有隐式或显式转换.我怀疑他们是否会添加此转换,因为这些类型用于不同的目的.

我觉得你的版本很好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读