我有一个Dictionary>在我以下列方式使用的代码中:KeyValues2011-07-151,2,32011-07-204,5,62010-02-117,8,9我的代码需要能够查询与键中特定子字符串匹配的所有值。例如,如果我有子字符串2011-07它应该返回值{1,2,3,4,5,6}.11的子串应该从1-9返回所有ID.任何人都可以推荐一种简洁的方法来实现这一目标吗?或者提供更好的数据结构来检索这些信息? 最佳答案 我会做一个扩展方法:publicstaticclassDictionaryExt{publicstaticIE
我从C#启动一个进程,如下所示:publicboolExecute(){ProcessStartInfostartInfo=newProcessStartInfo();startInfo.Arguments="thecommand";startInfo.FileName="C:\\MyApp.exe";startInfo.UseShellExecute=false;startInfo.RedirectStandardOutput=true;startInfo.RedirectStandardError=true;Log.LogMessage("{0}{1}",startInfo.Fil
假设我有这样的代码:publicasyncTaskDoSomethingReturnString(intn){...}int[]numbers=newint[]{1,2,3};假设我想创建一个包含调用DoSomethingReturnString的结果的字典对于每个类似于此的数字:Dictionarydictionary=numbers.ToDictionary(n=>n,n=>DoSomethingReturnString(n));那是行不通的,因为DoSomethingReturnString返回Task而不是string.智能感知建议我尝试将我的lambda表达式指定为异步,但这
我在使用VisualStudio2010的C#4.0单元测试中比较字符串时遇到问题。这个相同的测试用例在VisualStudio2008(使用C#3.5)中正常工作。这是相关的代码片段:byte[]rawData=GetData();stringdata=Encoding.UTF8.GetString(rawData);Assert.AreEqual("Constant",data,false,CultureInfo.InvariantCulture);调试此测试时,肉眼看来data字符串包含与文字完全相同的字符串。当我调用data.ToCharArray()时,我注意到字符串data
当存在多个构造函数时,CaSTLeWindsor如何确定解析哪个构造函数? 最佳答案 所有可用的构造函数都被建模为候选人,并且基本上是在他们之间进行竞赛。构造函数中的每个参数代表一个可以满足或不满足的依赖关系。对于每个候选构造函数,分析所有依赖关系。如果可以满足依赖关系,则为候选人加两分。如果不能满足,则从候选人中减去两分。得分最高的候选构造函数获胜,并被选中实例化组件。这个算法的代码是here. 关于c#-什么是构造函数解析顺序?,我们在StackOverflow上找到一个类似的问题:
有没有办法测试一个对象是否是一个字典?在一个方法中,我试图从列表框中的选定项目中获取值。在某些情况下,列表框可能绑定(bind)到字典,但这在编译时是未知的。我想做类似的事情:if(listBox.ItemsSourceisDictionary){KeyValuePairpair=(KeyValuePair)listBox.SelectedItem;objectvalue=pair.Value;}有没有办法在运行时使用反射动态地做到这一点?我知道可以对泛型类型使用反射并确定键/值参数,但我不确定在检索到这些值后是否有办法完成剩下的工作。 最佳答案
我在.NET2.0中有一个简单的SQL查询(使用SqlCommand、SqlTransaction),它返回一个整数-字符串对表(ID、名称)。我想将这些数据放入像Dictionary这样的字典中.我可以将结果放入数据表中,但即使对其进行迭代,我也不确定如何进行输入和所有其他操作。我觉得这一定是一个普遍的问题,但我还没有找到任何好的解决方案。提前致谢。 最佳答案 您可以尝试与此类似的方法,根据您当前循环访问结果的方式进行调整:Dictionarydictionary=newDictionary();using(SqlConnecti
我正在尝试使用字符串元素作为键并使用int[]元素作为值来初始化一个字典,如下所示:System.Collections.Generic.DictionarymyDictionary;myDictionary=newDictionary{{"length",{1,1}},{"width",{1,1}}};但是调试器一直说:“意外的符号‘{’”。你能告诉我上面的代码有什么问题吗?谢谢! 最佳答案 我不确定是否适用于C#,但以下示例适用于Java:代替{1,1}尝试newint[]{1,1}或new[]{1,1}
如何转换ListItemCollection(DropDownList.items)到Dictionary(我知道它可以通过每个循环来完成)还有其他方法linq吗? 最佳答案 您可以使用LINQ:collection.Cast().ToDictionary(i=>i.Value,i=>i.Text);无法立即知道项目的类型,因此无法立即知道cast方法(至少intellisense没有为我提出来)。但是ToDictionary()应该可以让您到达那里,并指定您想要的任何内容作为键和值。HTH.
目前我正在使用varx=dict.ContainsKey(key)?dict[key]:defaultValue我想要一些方法让dictionary[key]为不存在的键返回null,所以我可以写类似的东西varx=dict[key]??defaultValue;这也最终成为linq查询等的一部分,所以我更喜欢单行解决方案。 最佳答案 使用扩展方法:publicstaticclassMyHelper{publicstaticVGetValueOrDefault(thisIDictionarydic,Kkey,VdefaultVal=