gpt4 book ai didi

c# - Lookup 有什么意义?

转载 作者:IT王子 更新时间:2023-10-29 03:31:56 31 4
gpt4 key购买 nike

MSDN 是这样解释 Lookup 的:

A Lookup<TKey, TElement> resembles a Dictionary<TKey,
TValue>
. The difference is that a Dictionary<TKey, TValue> maps keys to single values, whereas a Lookup<TKey, TElement> maps keys to collections of values.

我不觉得这个解释特别有用。 Lookup 有什么用?

最佳答案

它是 IGrouping 和字典的结合体。它允许您通过一个键将项目组合在一起,然后通过该键以高效的方式访问它们(而不是仅仅遍历它们,这正是 GroupBy 允许您做的)。

例如,您可以加载 .NET 类型并按命名空间构建查找...然后非常轻松地获取特定命名空间中的所有类型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;

public class Test
{
static void Main()
{
// Just types covering some different assemblies
Type[] sampleTypes = new[] { typeof(List<>), typeof(string),
typeof(Enumerable), typeof(XmlReader) };

// All the types in those assemblies
IEnumerable<Type> allTypes = sampleTypes.Select(t => t.Assembly)
.SelectMany(a => a.GetTypes());

// Grouped by namespace, but indexable
ILookup<string, Type> lookup = allTypes.ToLookup(t => t.Namespace);

foreach (Type type in lookup["System"])
{
Console.WriteLine("{0}: {1}",
type.FullName, type.Assembly.GetName().Name);
}
}
}

(我通常会在普通代码中对大多数这些声明使用 var。)

关于c# - Lookup<TKey, TElement> 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1403493/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com