C# 6 元组特性应用:方便的字典工厂方法

首先是简单的实现:

    public static class CollectionExtensions
    {

        public static IDictionary<TKey, TValue> Map<TKey, TValue>(params (TKey key, TValue value)[] pairs)
        {
            var dict = new Dictionary<TKey, TValue>(pairs.Length);
            foreach (var p in pairs)
            {
                dict.Add(p.key, p.value);
            }
            return dict;
        }

    }

然后就是简单的调用了:

using static CollectionExtensions;

void Main() {
    var dict = Map(("Name", "John Doe"), ("Address", "Wall Street"));
}

感觉是不是比 C# 语法内置的 Dictionary Literal 要清爽不少:

var dict = new Dictionary<string, string> {
    { "Name", "John Doe" },
    { "Address", "Wall Street" }
};

  

时间: 2024-10-20 15:45:29

C# 6 元组特性应用:方便的字典工厂方法的相关文章

python基础之元组(Tuple)、字典(Dictionary)详解

元组定义 元组是另一个数据类型,类似于List(列表). 元组用”()”标识.内部元素用逗号隔开.但是元素不能二次赋值,相当于只读列表. 举例: tuple = ( ‘abcd’, 786 , 2.23, ‘john’, 70.2 ) list = [ ‘abcd’, 786 , 2.23, ‘john’, 70.2 ] tuple[2] = 1000 # 元组中是非法应用 list[2] = 1000 # 列表中是合法应用 print tuple * 2 # 输出元组两次 字典定义 字典(di

Python列表和字典的方法总结

列表方法: 方法 说明 append( item ) 在列表末尾插入(item ) count( element ) 返回element在列表中出现的次数 extend( newlist ) 将newlist的元素插入列表末尾 index( element ) 返回element在列表中的索引,如果不存在,则引发ValueError异常 insert( index , item ) 在index位置插入item pop( [index] ) index参数为可选的.如无参调用,则会删除并返回列表

Swift语言中的集合类——字典 使用方法

字典 字典是一种存储相同类型多重数据的存储器.每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符.和数组中的数据项不同,字典中的数据项并没有具体顺序.我们在需要通过标识符(键)访问数据的时候使用字典,这种方法很大程度上和我们在现实世界中使用字典查字义的方法一样. Swift 的字典使用时需要具体规定可以存储键和值类型.不同于 Objective-C 的NSDictionary和NSMutableDictionary 类可以使用任何类型的对象来作键和值并且不提供任何关于

Python 字典 items() 方法

Python 字典 items() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(key, value) 元组数组. >>> D = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www. taobao.com'} >>> print(D.items()) dict_items([('Google', 'www.google.com'), ('R

zhlan--Python中的字典遍历方法 &amp; 字典取值

一.Python中的字典遍历方法: info = { 'name':'xiaoming', 'sex':'nan', 'age':20, 'id':1} info2 = { 'name':'hhh', 'sex':'nv', 'addr':'beijign'} 第一种方法: # 直接循环字典,循环的是字典的key,如果想循环的时候同时获取到key和value,那么就要用 .items()方法for k,v in info.items(): print('%s is %s'%(k,v)) 运行结果

Python中字典get方法的使用

Python中字典get方法的使用 说起来,这个功能是否需要学习还真是有待于讨论.其实,知道了字典这种数据结构以后,通过最基本的Python功能也能够实现一个类似的功能.不过,既然内置了这个功能那么我们就没有必要重复造车轮. 在字典内置的方法中,想说的方法为get.这个方法是通过键来获取相应的值,但是如果相应的键不存在则返回None.其实,None只是一个默认的返回值但是并不是一个不能修改的返回值.其实,如果查询失败,我们可以指定一个返回值. 上面提到的所有功能汇总在一个示范代码,具体如下: #

Python中list(列表)、tuple(元组)、dict(字典)基本操作快速入门

最近看了一下Python的列表.字典以及元组等几种数据类型,感觉这几种数据类型比较常用,顺便总结了一下一些比较常用的用法. 列表是Python中比较常用的数据类型,并且列表是可以改变的,使用也非常简单,具体操作如下: 1)如创建一个列表: list1 = [1,2,3] list2 = ['a','b','c'] list3 = [1,2,3,'a','b','abc'] list4 = [1,[2,3],['a','b',''c]] #创建一个有序列表 list5 = range(10) #创

python基础:列表、字典、元组、集合四种数据结构的方法以及使用整理

列表:shoplist = ['apple', 'mango', 'carrot', 'banana']字典:di = {'a':123,'b':'something'}集合:jihe = {'apple','pear','apple'}元组: t = 123,456,'hello' 1.列表    空列表:a=[]    函数方法:a.append(3)      >>>[3]              a.extend([3,4,5])     >>>[3,3,4,

spark元组的列表转化为字典

好吧,元组不能转为字典.或者说直接不能转,间接可以.当然元组有格式要求的. [(key1,value1),(key2,value2),...] 之所以把这个问题抛出来是因为,spark的zipWithIndex本来应返回字典,但却返回了上面这种格式. 当然在spark的环境下它还是可以被当做字典支持的.你可以用lookup函数. 然而,lookup函数式不能传到rdd的一些操作的lambda表达式的,例如: #一个错误的例子sholdbedict = sc.parallelize([4,5,6]