C#中ToDictionary,ToLookup
类别:编程学习 浏览量:2400
时间:2014-11-3 C#中ToDictionary,ToLookup
C#中ToDictionary,ToLookup一、C#中ToDictionary
ToDictionary中并没有给我们做key的重复值判断,那也就侧面说明ToDictionary在kv中只能是 “一对一”的关系,也就是v中永远只会有一条记录
定义
public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector
)
实例
class Package
{
public string Company { get; set; }
public double Weight { get; set; }
public long TrackingNumber { get; set; }
}
public static void ToDictionaryEx1()
{
List<Package> packages =
new List<Package>
{ new Package { Company = "Coho Vineyard", Weight = 25.2, TrackingNumber = 89453312L },
new Package { Company = "Lucerne Publishing", Weight = 18.7, TrackingNumber = 89112755L },
new Package { Company = "Wingtip Toys", Weight = 6.0, TrackingNumber = 299456122L },
new Package { Company = "Adventure Works", Weight = 33.8, TrackingNumber = 4665518773L } };
// Create a Dictionary of Package objects,
// using TrackingNumber as the key.
Dictionary<long, Package> dictionary =
packages.ToDictionary(p => p.TrackingNumber);
foreach (KeyValuePair<long, Package> kvp in dictionary)
{
outputBlock.Text += String.Format(
"Key {0}: {1}, {2} pounds",
kvp.Key,
kvp.Value.Company,
kvp.Value.Weight) + "\\n";
}
}
二、C#中ToLookup
ToLookup() 方法创建一个类似 字典(Dictionary ) 的列表,这是一个one-to-many集合,一个Key可以对应多个Value。
Lookup,不像Dictionary, 是不可改变的。 这意味着一旦你创建一个lookup, 你不能添加或删除元素。
定义
public static ILookup<TKey, TSource> ToLookup<TSource, TKey>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector
)
实例1
var dic = ticketlist.ToLookup(i => i.OrderID);
foreach (var item in dic)
{
Console.WriteLine("订单号:" + item.Key);
foreach (var item1 in item)
{
Console.WriteLine("\\t\\t" + item1.TicketNo + " " + item1.Description);
}
}
实例2、得到某个类别的所有产品
private static void PrintCategory(ILookup<string, Product> productsByCategory,string categoryName)
{
foreach (var item in productsByCategory[categoryName])
{
Console.WriteLine(item);
}
}
标签:集合
您可能感兴趣
- python元组和列表的定义(Python基本数据结构与用法详解列表、元组、集合、字典)
- vue改数组和对象值(vue $set 实现给数组集合对象赋值)
- 如何对python中列表中的数据运算(Python3.5集合及其常见运算实例详解)
- dedecms参数改不了(dedecms安全设置集合整理)
- 什么是mongodb 固定集合
- sqlserver分区查询语句(SQL Server中的集合运算: UNION, EXCEPT和INTERSECT示例代码详解)
- 如何调用dede标签(浅析Dedecms程序SEO常用的列表标签调用代码集合)
- ASP.NET List 集合操作
- mysql有数据但筛选值为空(解决从集合运算到mysql的not like找不出NULL的问题)
- .Net中Immutable(不可变)集合
- dedecms标签分类(Dedecms程序SEO常用的列表标签调用代码集合 dedecms优化)
- idea生成dockerfile(idea集合docker实现镜像打包一键部署)
- es6常用的数组方法(ES6中Set与WeakSet集合的深入讲解)
- microsoftsqlserver官网(Microsoft SQL Server数据库各版本下载地址集合)
- python集合类(Python数据类型之Set集合实例详解)
- 今天要吃什么(今天要吃什么菜)
- 营养餐是什么(学校营养餐是什么)
- 谁说女子不如男 范冰冰演的武则天只是其一,另外两位你认识吗(谁说女子不如男)
- 杯酒人生---瓦伦丁酒杯和奥丁格啤酒(杯酒人生---瓦伦丁酒杯和奥丁格啤酒)
- 中秋节买啤酒,预算超过7元试试这8种啤酒,麦香浓郁都是真啤酒(预算超过7元试试这8种啤酒)
- CellPress旗下的6 期刊,国人友刊来了解一下吧(CellPress旗下的6期刊国人友刊来了解一下吧)
热门推荐
- css3渐变动画(CSS3径向渐变radial-gradient实现波浪边框和内倒角的方法)
- web前端css总结(前端面试必备之CSS3的新特性)
- ReturnUrl带多个参数,返回时只返回一个参数的解决方法
- tomcat架构解析(浅谈Tomcat多层容器的设计)
- dedecms导入doc插件(DEDECMS教程之静态模板类类文件)
- vue创建项目同时引入elementui(Vue Element前端应用开发之开发环境的准备工作)
- dede织梦怎么在文章下面添加图片(dedecms织梦模板描述description长度限制修改方法)
- 如何设置nginx使用ip访问(nginx基于域名,端口,不同IP的虚拟主机设置的实现)
- wordpress的静态php页面在哪(如何让PHPnow支持wordpress静态化链接的方法)
- oracle中decode函数
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9