gpt4 book ai didi

c# - 在不区分大小写的字典键中忽略连字符

转载 作者:太空狗 更新时间:2023-10-30 01:23:55 24 4
gpt4 key购买 nike

我在 asp.net/vb.net 中有一个不区分大小写的字典,如下所示:

Dim caseInsensitiveDictionary = New Dictionary(Of String, Single)(StringComparer.OrdinalIgnoreCase)

它包含这样的值

one hundred, 100
one hundred one, 101
one hundred two, 102

我希望如果用户试图找到这样的值:

Response.Write(dictionary("ONE-hundred").ToString)

他得到 100,但现在它得到异常,因为字典键没有连字符“-”。我需要覆盖哪个方法。

请推荐

最佳答案

您必须创建自定义 IEqualityComparer。

像这样:

public class MyEqualityComparer : IEqualityComparer<string>
{
public bool Equals(string x, string y)
{
return FixString(x).Equals(FixString(y), StringComparison.InvariantCultureIgnoreCase);
}

private string FixString(string x)
{
// replace hyphens
return x.Replace("-", " ");
}

public int GetHashCode(string obj)
{
return FixString(obj).GetHashCode();
}
}

然后在字典中使用那个类: 字典 x = 新字典(new MyEqualityComparer())

关于c# - 在不区分大小写的字典键中忽略连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10829534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com