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);
}
}
标签:集合
您可能感兴趣
- .Net中Immutable(不可变)集合
- idea生成dockerfile(idea集合docker实现镜像打包一键部署)
- microsoftsqlserver官网(Microsoft SQL Server数据库各版本下载地址集合)
- python元组和列表的定义(Python基本数据结构与用法详解列表、元组、集合、字典)
- ASP.NET List 集合操作
- vue改数组和对象值(vue $set 实现给数组集合对象赋值)
- dedecms参数改不了(dedecms安全设置集合整理)
- 什么是mongodb 固定集合
- mysql有数据但筛选值为空(解决从集合运算到mysql的not like找不出NULL的问题)
- dedecms标签分类(Dedecms程序SEO常用的列表标签调用代码集合 dedecms优化)
- sqlserver分区查询语句(SQL Server中的集合运算: UNION, EXCEPT和INTERSECT示例代码详解)
- es6常用的数组方法(ES6中Set与WeakSet集合的深入讲解)
- python集合类(Python数据类型之Set集合实例详解)
- 如何对python中列表中的数据运算(Python3.5集合及其常见运算实例详解)
- 如何调用dede标签(浅析Dedecms程序SEO常用的列表标签调用代码集合)
- 10句英语常用(英语常用900句)
- 爱情能当饭吃吗(爱情能当饭吃吗说说)
- 白T恤穿法(白t恤)
- 你怎么忘了是说先爱我(你怎么忘了如何爱我)
- 做技术难吗(技术难不难)
- 林心如是谁(林心如是谁演的)
热门推荐
- nginxssl证书怎么设置(nginx结合openssl实现https的方法)
- canvas实现滚动列表(Canvas实现贝赛尔曲线轨迹动画的示例代码)
- 云服务器配置怎么设置(新手如何选择云服务器配置)
- 查询按照部门分组的mysql语句(Mysql根据某层部门ID查询所有下级多层子部门的示例)
- dedecms更新后支付宝接口提示错误ILLEGAL_EXTERFACE的解决方法(dedecms更新后支付宝接口提示错误ILLEGAL_EXTERFACE的解决方法)
- access标签名称属性(htaccess 防盗链,防止目录浏览等10大技巧)
- ashx文件中代码折叠
- dockermysql实例(docker 连接宿主Mysql操作)
- pandas如何指定空数据类型(解决Pandas的DataFrame输出截断和省略的问题)
- python经典算法(浅谈python常用程序算法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9