Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于System.Linq.Lookup类_C#_Linq - Fatal编程技术网

C# 关于System.Linq.Lookup类

C# 关于System.Linq.Lookup类,c#,linq,C#,Linq,我在读一本C#book的时候遇到了这个班,有一些问题 为什么要将其添加到System.Linq命名空间中,而不是添加到UsualCollections命名空间中 这门课的目的是什么 为什么这个类不用于直接实例化?这只能通过ToLookup分机获得,对吗 类的用途:一个键可以映射到多个值的字典。可以将其视为分组而不是一对一映射 只有通过托卢库普决定:通过。对我来说,这又是一个糟糕的决定。另一方面,这意味着结果对外部世界是不变的,这很好。当然,编写自己的支持这一点的集合是很容易的,但是如果能够“正

我在读一本C#book的时候遇到了这个班,有一些问题

  • 为什么要将其添加到System.Linq命名空间中,而不是添加到UsualCollections命名空间中
  • 这门课的目的是什么
  • 为什么这个类不用于直接实例化?这只能通过ToLookup分机获得,对吗

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

只有通过托卢库普决定:通过。对我来说,这又是一个糟糕的决定。另一方面,这意味着结果对外部世界是不变的,这很好。当然,编写自己的支持这一点的集合是很容易的,但是如果能够“正确地”将其包含在集合中,那将是非常好的。我的猜测是,微软没有足够的时间/金钱来完成相当严格的设计/测试,使其成为一流的收藏品决策

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

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