草庐IT

字典序法

全部标签

c# - 无法解析 Unity 容器中的字典

我刚刚偶然发现了这个:在Unity容器中,我想注册IDictionary;假设它是IDictionary_unityContainer=newUnityContainer().RegisterType,Dictionary>();但如果我尝试vard=_unityContainer.Resolve>();无法解析...我明白了...Microsoft.Practices.Unity.ResolutionFailedException:Microsoft.Practices.Unity.ResolutionFailedException:解析依赖失败,type="System.Colle

c# - 删除最旧元素的大小有限的字典?

是否有可用于散列数据的现有数据结构能够删除最旧的元素?我现在正在考虑的方法是使用字典和队列进行快速查找,并能够使用队列从字典中删除最旧的元素。 最佳答案 您可以使用OrderedDictionary.这将保持插入顺序(与SortedDictionary不同,后者将按键排序)。然后,您可以删除第一个被认为是最旧的可用元素。 关于c#-删除最旧元素的大小有限的字典?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

c# - 在遍历字典时删除

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Modifying.NETDictionarywhileEnumeratingthroughit我有一个字典对象,我对其进行迭代并执行一些操作。根据条件,我应该删除或保留我当前正在迭代的键值对。在遍历字典时从字典中删除键值对的最佳方法是什么?我尝试使用单独的字典对象来跟踪要删除的元素,但我不确定如何使用它从我的主字典中删除,或者这是否是最有效的方法。

C# LINQ - 将嵌套字典转换为列表

我如何将嵌套字典展平为一些对象列表(下例中的SomeObject),这些对象应该保存这些字典的键?例如:让我们有一个如下类型的字典varnestedDictionary=newDictionary>();那我们上这个类吧publicclassSomeObject{publicintvar1;publicintvar2;publicstringsomeStringVar;}如何转换nestedDictionary到List其中var1是外部字典的键,var2是内部字典的关键,someStringVar是内部字典的字符串值?本质上,我该如何传输:nestedDict[0][0]="foo"

c# - 我可以比较两个字典的键吗?

使用C#,我想具体比较两个词典,两个具有相同键但不同值的词典,我找到了一个方法Comparer但我不太确定如何使用它?除了遍历每个键,还有其他方法吗?Dictionary[{key:value}]Dictionary1[{key:value2}] 最佳答案 如果您只想查看键是否不同但不知道它们是什么,您可以在每个键的Keys属性上使用SequenceEqual扩展方法词典:Dictionarydictionary1;Dictionarydictionary2;varsame=dictionary1.Count==dictionary

c# - 带元组键的不区分大小写的字典

我有一个字典,其中的键是一个元组,其中第一项是日期,第二项是字符串。我希望字典不区分大小写。我知道如果键只是一个字符串,我可以在声明字典时将StringComparer.OrdinalIgnoreCase作为参数传递,但是当键是元组时这似乎不起作用。有没有办法指定StringComparer用于元组的第二项?谢谢 最佳答案 使用thisoverloadDictionary构造函数的一部分,它允许您为键指定自定义比较器。你会伴随着创建一个类来实现IEqualityComparer>可能看起来像这样:classCustomEqualit

c# - 带条目限制的字典

我需要提供对跨session的所有用户持续存在的键/值对存储的访问权限。我可以很容易地为此创建一个单例,但出于性能原因,我想将字典的大小限制为10000个项目(或任何性能数字,因为该对象将无限期存在)是否有一种字典形式,我可以在其中指定存储对象数量的限制,并在超过该限制时删除最旧的条目? 最佳答案 没有这样的内置词典,但您可以构建自己的词典。您将需要一个key队列-这将使您能够快速找到最旧的条目并将其删除。此外,您还需要一个简单的字典来保存您的值-这将使您能够快速搜索它们:publicclassSuperDictionary{pri

c# - 如何在字典键上执行 "like"?

我怎样才能通过“点赞”来找到字典键?我目前正在做:mydict.ContainsKey(keyName);但是有些keyNames附加了一个额外的词(用空格分隔),我想做一个“喜欢”或.StartsWith()。比较将如下所示:"key1"=="key1"//match"key1"=="key1someword"//partialmatch我需要在这两种情况下进行匹配。 最佳答案 您可以使用LINQ来执行此操作。这里有两个例子:boolanyStartsWith=mydict.Keys.Any(k=>k.StartsWith("ke

c# - 将 JSON 字符串转换为 C# 字典

我有一个JSON字符串{"Date":"21/11/2010""name":"TEST""place":"xyz"}我想在不使用第三方库的情况下将其转换为C#字典 最佳答案 自net3.5起,您可以使用jsonserializer在native执行此操作。varjss=newJavaScriptSerializer();vardict=jss.Deserialize>(jsonText);varplace=dict["place"];//"xyz"这是针对您的案例的简单教程:QuickJSONSerialization/Deseri

C# 字典 : faster access but less memory footprint

我需要一些关于以最小内存占用和最大访问性能进行存储和访问的最佳方式的建议。例如。对于每辆车,我想存储型号和名称。我有以下几点想法:选项1:Dictionary>values=newDictionary>();Dictionarylist=newDictionary();list.Add("2001","JettaS");list.Add("2002","JettaSE");list.Add("2002","JettaLE");values.Add("VolksWagen",list);选项2:Dictionary>>values2=newDictionary>>();List>list