草庐IT

字典序法

全部标签

c# - 在 C# 中测试对象是否为字典

有没有办法测试一个对象是否是一个字典?在一个方法中,我试图从列表框中的选定项目中获取值。在某些情况下,列表框可​​能绑定(bind)到字典,但这在编译时是未知的。我想做类似的事情:if(listBox.ItemsSourceisDictionary){KeyValuePairpair=(KeyValuePair)listBox.SelectedItem;objectvalue=pair.Value;}有没有办法在运行时使用反射动态地做到这一点?我知道可以对泛型类型使用反射并确定键/值参数,但我不确定在检索到这些值后是否有办法完成剩下的工作。 最佳答案

c# - SQL 命令结果到字典 C# .NET 2.0

我在.NET2.0中有一个简单的SQL查询(使用SqlCommand、SqlTransaction),它返回一个整数-字符串对表(ID、名称)。我想将这些数据放入像Dictionary这样的字典中.我可以将结果放入数据表中,但即使对其进行迭代,我也不确定如何进行输入和所有其他操作。我觉得这一定是一个普遍的问题,但我还没有找到任何好的解决方案。提前致谢。 最佳答案 您可以尝试与此类似的方法,根据您当前循环访问结果的方式进行调整:Dictionarydictionary=newDictionary();using(SqlConnecti

c# - 创建一个以数组为值的字典

我正在尝试使用字符串元素作为键并使用int[]元素作为值来初始化一个字典,如下所示:System.Collections.Generic.DictionarymyDictionary;myDictionary=newDictionary{{"length",{1,1}},{"width",{1,1}}};但是调试器一直说:“意外的符号‘{’”。你能告诉我上面的代码有什么问题吗?谢谢! 最佳答案 我不确定是否适用于C#,但以下示例适用于Java:代替{1,1}尝试newint[]{1,1}或new[]{1,1}

c# - 如何将 ListItemCollection (dropdownlist.items) 转换为字典<string,string>?

如何转换ListItemCollection(DropDownList.items)到Dictionary(我知道它可以通过每个循环来完成)还有其他方法linq吗? 最佳答案 您可以使用LINQ:collection.Cast().ToDictionary(i=>i.Value,i=>i.Text);无法立即知道项目的类型,因此无法立即知道cast方法(至少intellisense没有为我提出来)。但是ToDictionary()应该可以让您到达那里,并指定您想要的任何内容作为键和值。HTH.

C# 字典 ValueOrNull/ValueorDefault

目前我正在使用varx=dict.ContainsKey(key)?dict[key]:defaultValue我想要一些方法让dictionary[key]为不存在的键返回null,所以我可以写类似的东西varx=dict[key]??defaultValue;这也最终成为linq查询等的一部分,所以我更喜欢单行解决方案。 最佳答案 使用扩展方法:publicstaticclassMyHelper{publicstaticVGetValueOrDefault(thisIDictionarydic,Kkey,VdefaultVal=

c# - Newtonsoft Json 将字典反序列化为 DataContractJsonSerializer 中的键/值列表

我有一个用DataContractJsonSerializer序列化到存储的字典,我想用Newtonsoft.Json反序列化它。DataContractJsonSerializer已将字典序列化为键/值对列表:{"Dict":[{"Key":"Key1","Value":"Val1"},{"Key":"Key2","Value":"Val2"}]}我可以给JsonConvert.DeserializeObject()一些很酷的选择吗?这将使它同时支持该数据格式和Newtonsoft.Json的格式?{"Dict":{"Key1":"Val1","Key2":"Val2"}}是Newt

c# - 如何制作字典扩展方法?

我正在尝试编写一个独立于键/值数据类型工作的Dictionary扩展。我尝试使用object数据类型传递它,假设它适用于任何类型。我的代码:publicstaticclassDictionaryExtensionsClass{publicstaticvoidAddFormat(thisDictionaryDic,??unknowtype/*object*/Key,stringstr,paramsobject[]arglist){Dic.Add(Key,String.Format(str,arglist));}} 最佳答案 您只需将方

c# - 为什么内置异常消息往往没有具体细节? (例如字典中的键)

我确定我已经在框架的各种异常消息中看到了这一点。我从MSDN库中查看了以下页面,但找不到有关消息内容的太多指导:ExceptionThrowingErrorMessageDesignException.MessageProperty第一页中唯一可以解释它的部分是这段文字:Donotdisclosesecurity-sensitiveinformationinexceptionmessageswithoutdemandingappropriatepermissions.这是Dictionary.Addmethod抛出的ArgumentException|这让我想起了这个问题。它看起来像这

c# - html helper 接受一个字典<string,object>,如何使用这个参数?

如果一个html助手将一个字典作为参数,我该如何使用它?我试过:但这行不通。 最佳答案 (){{"key","value"},{"key1",someObj},{"blah",1}}); 关于c#-htmlhelper接受一个字典,如何使用这个参数?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3257160/

c# - 字典中的无效键

为什么字典在使用无效键索引集合时不只是返回null? 最佳答案 因为通用字典可以包含值类型的实例,而null对值类型无效。例如:vardict=newDictionary();DateTimedate=dict["foo"];//Whatshouldhappenhere?datecannotbenull!您应该改用字典的TryGetValue方法:vardict=newDictionary();DateTimedate;if(dict.TryGetValue("foo",outdate)){//Keywaspresent;datei