关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我们可以使用其中任何一个(包括List、ArrayList、Dictionary、Hashtable、Stack、Queue)来保存值或保存对其他对象作为集合的引用。但是,我的问题是什么时候使用哪个?
我在C#中有以下代码DictionarydObject=newDictionary();我要转换dObject至Dictionary.我该怎么做? 最佳答案 使用ToDictionary方法:DictionarydString=dObject.ToDictionary(k=>k.Key,k=>k.Value.ToString());在这里,您重用了原始字典中的键,并使用ToString方法将值转换为字符串。如果您的字典可以包含空值,您应该在执行ToString之前添加一个空值检查:DictionarydString=dObject.
我在C#中有以下代码DictionarydObject=newDictionary();我要转换dObject至Dictionary.我该怎么做? 最佳答案 使用ToDictionary方法:DictionarydString=dObject.ToDictionary(k=>k.Key,k=>k.Value.ToString());在这里,您重用了原始字典中的键,并使用ToString方法将值转换为字符串。如果您的字典可以包含空值,您应该在执行ToString之前添加一个空值检查:DictionarydString=dObject.
显然,您不能将null用作键,即使您的键是可为null的类型也是如此。这段代码:varnullableBoolLabels=newSystem.Collections.Generic.Dictionary{{true,"Yes"},{false,"No"},{null,"(n/a)"}};...导致此异常:Valuecannotbenull.Parametername:keyDescription:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestacktracef
显然,您不能将null用作键,即使您的键是可为null的类型也是如此。这段代码:varnullableBoolLabels=newSystem.Collections.Generic.Dictionary{{true,"Yes"},{false,"No"},{null,"(n/a)"}};...导致此异常:Valuecannotbenull.Parametername:keyDescription:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestacktracef
这个问题在这里已经有了答案:DifferentwaysofaddingtoDictionary(8个答案)关闭8年前。Dictionary.Add方法和索引器Dictionary[key]=value有什么区别?
这个问题在这里已经有了答案:DifferentwaysofaddingtoDictionary(8个答案)关闭8年前。Dictionary.Add方法和索引器Dictionary[key]=value有什么区别?
我尝试检查null但编译器警告说这种情况永远不会发生。我应该寻找什么? 最佳答案 假设您希望在键确实存在时获取值,请使用Dictionary.TryGetValue:intvalue;if(dictionary.TryGetValue(key,outvalue)){//Keywasindictionary;"value"containscorrespondingvalue}else{//Keywasn'tindictionary;"value"isnow0}(使用ContainsKey然后索引器让它查找键两次,这是毫无意义的。)请注
我尝试检查null但编译器警告说这种情况永远不会发生。我应该寻找什么? 最佳答案 假设您希望在键确实存在时获取值,请使用Dictionary.TryGetValue:intvalue;if(dictionary.TryGetValue(key,outvalue)){//Keywasindictionary;"value"containscorrespondingvalue}else{//Keywasn'tindictionary;"value"isnow0}(使用ContainsKey然后索引器让它查找键两次,这是毫无意义的。)请注
我正在努力思考哪些数据结构最有效以及何时/何地使用哪些数据结构。现在,可能是我对结构的理解不够好,但是ILookup(ofkey,...)与Dictionary(of键,列表(...))?此外,我想在哪里使用ILookup以及在程序速度/内存/数据访问等方面效率更高的地方? 最佳答案 两个显着差异:Lookup是不可变的。耶:)(至少,我相信具体的Lookup类是不可变的,并且ILookup接口(interface)不提供任何可变成员。当然,可能还有其他可变实现。)当您查找查找中不存在的键时,您会得到一个空序列而不是KeyNotFo