【发布时间】:2016-02-29 19:58:11
【问题描述】:
如果键包含与字符串查找匹配一半的字符串,我想从字典中返回值。
private readonly Dictionary<string, string> _ipAddressesDictionary = new Dictionary<string, string>()
{
{"ip.qwer4.abc5.somename", "6x.x.00.xx"},
{"ip.qwer3.abc1.somename", "6x.3.xx.xx"},
}
例如,
我有一个字符串“abc1.somename”,我正在构建如下逻辑 - 目前不起作用 - 为我获取 值给定的键名包含该子字符串。我希望得到“6x.3.xx.xx”。
public string LookUpPeerIp(string deviceName)
{
var value = _ipAddressesDictionary.Keys.Contains(deviceName);
return value.ToString();
}
编辑:
对不起,伙计们,忘记提及传入进行查找的字符串也不完全匹配。它附加了一个 .co.uk :(
所以它将是 abc1.somename.co.uk 但字典有 ip.qwer3.abc1.somename 没有 .co.uk
【问题讨论】:
-
如果包含子字符串的字典中有多个键,例如您的示例中的
"ip.qwer",它应该返回什么? -
如果 2 个键包含您的 deviceName 怎么办?
-
@JamesThorpe 对于查找字符串而言,情况永远不会如此。
-
@GeorgeVovos 希望不会是这样,如果是这样,请返回 First()
-
好的 - 但我喜欢你在 1 条评论中从 "won't ever" 到 "hopefully wont" 的方式:) 谁知道未来会怎样......!
标签: c# list dictionary substring