相关疑难解决方法(0)

通用字典的不区分大小写的访问

我有一个使用托管dll的应用程序.其中一个dll返回一个通用字典:

Dictionary<string, int> MyDictionary;  
Run Code Online (Sandbox Code Playgroud)

字典包含大小写的键.

另一方面,我得到一个潜在的密钥列表(字符串),但我不能保证这种情况.我试图使用键获取字典中的值.但是,由于案件不匹配,以下情况当然会失败:

bool Success = MyDictionary.TryGetValue( MyIndex, out TheValue );  
Run Code Online (Sandbox Code Playgroud)

我希望TryGetValue会有一个像MSDN文档中提到的忽略大小写标志,但它似乎对通用词典无效.

有没有办法让字典的值忽略关键案例?有没有比使用正确的StringComparer.OrdinalIgnoreCase参数创建字典的新副本更好的解决方法?

c# generics dictionary

225
推荐指数
4
解决办法
9万
查看次数

C#中字符串键类型的不区分大小写字典

如果我有一个Dictionary<String,...>是否有可能使方法ContainsKey不区分大小写?

这似乎是相关的,但我没有理解它:c#Dictionary:通过声明使Key不区分大小写

c# collections generic-collections

135
推荐指数
5
解决办法
5万
查看次数

替代if,否则if

我有很多if,else if语句,我知道必须有更好的方法来做到这一点,但即使在搜索stackoverflow之后,我也不确定如何在我的特定情况下这样做.

我正在解析文本文件(账单)并根据账单上是否出现某些字符串将服务提供商的名称分配给变量(txtvar.Provider).

这是我正在做的一小部分样本(不要笑,我知道它很乱).总而言之,如果是,那么大约有300个.

if (txtvar.BillText.IndexOf("SWGAS.COM") > -1)
{
    txtvar.Provider = "Southwest Gas";
}
else if (txtvar.BillText.IndexOf("georgiapower.com") > -1)
{
    txtvar.Provider = "Georgia Power";
}
else if (txtvar.BillText.IndexOf("City of Austin") > -1)
{
    txtvar.Provider = "City of Austin";
}
// And so forth for many different strings
Run Code Online (Sandbox Code Playgroud)

我想使用类似switch语句的东西更高效和可读,但我不确定如何比较BillText.我正在寻找这样的东西,但无法弄清楚如何使它工作.

switch (txtvar.BillText)
{
    case txtvar.BillText.IndexOf("Southwest Gas") > -1:
        txtvar.Provider = "Southwest Gas";
        break;
    case txtvar.BillText.IndexOf("TexasGas.com") > -1:
        txtvar.Provider = "Texas Gas";
        break;
    case txtvar.BillText.IndexOf("Southern") > -1:
        txtvar.Provider = "Southern Power & Gas"; …
Run Code Online (Sandbox Code Playgroud)

c# performance dictionary if-statement loop-unrolling

15
推荐指数
4
解决办法
1万
查看次数

C#自动将ToLower应用于方法字符串参数?

有没有办法让C#编译器在方法中使用之前自动将ToLower()(或任何其他操作方法调用)应用于特定的方法参数?

//附加信息:其目的是使用具有不区分大小写的键的Dictionary.显然,我的第一种方法是完全错误的,因为我已经找到了一种完全不同的方法来解决字典本身,而不是它所访问的密钥.

我的错!我应该已经为你提供了这些信息.所以,不需要进一步的答案.无论如何,非常感谢!

在这种特殊情况下更好的方法:c#Dictionary:通过声明使Key不区分大小写

c# tolower

3
推荐指数
1
解决办法
1231
查看次数