当前位置:  开发笔记 > 编程语言 > 正文

关于System.Linq.Lookup类

如何解决《关于System.Linq.Lookup类》经验,为你挑选了2个好方法。

我在阅读C#书时遇到了这个课,并提出了一些问题.

为什么这会添加到System.Linq命名空间而不是usuall Collections命名空间?

这个课程背后的意图是什么

为什么这个类不是用于直接实例化?这只能通过ToLookup扩展,对吧?

Jon Skeet.. 17

类的用途:键可以映射到多个值的字典.可以将其视为分组而非一对一映射.

只有通过ToLookup决定:通过.再一次,对我来说似乎是一个糟糕的电话.另一方面,这意味着结果对外界是不可改变的,这是相当不错的.当然,编写自己的集合很容易支持这个 - 但是在"正确"的集合中将它集合起来会非常好.我的猜测是,MS没有时间/金钱来完成必要的严格设计/测试,以使其成为一流的收藏决定.

命名空间决定:可能与上述有关.在System.Collections.Generic中有一个你自己无法创建的版本会有点奇怪.



1> Jon Skeet..:

类的用途:键可以映射到多个值的字典.可以将其视为分组而非一对一映射.

只有通过ToLookup决定:通过.再一次,对我来说似乎是一个糟糕的电话.另一方面,这意味着结果对外界是不可改变的,这是相当不错的.当然,编写自己的集合很容易支持这个 - 但是在"正确"的集合中将它集合起来会非常好.我的猜测是,MS没有时间/金钱来完成必要的严格设计/测试,以使其成为一流的收藏决定.

命名空间决定:可能与上述有关.在System.Collections.Generic中有一个你自己无法创建的版本会有点奇怪.



2> Marc Gravell..:

顺便说一句,请注意MiscUtil还包括一个MiscUtil.Linq.EditableLookup<,>类似的类; 它实现了常规ILookup<,>接口,但是完全可变 - 因此您可以创建它并添加自己的值.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有