C# 在类型为
以下是我已有的代码,它可以工作:C# 在类型为,c#,dictionary,C#,Dictionary,以下是我已有的代码,它可以工作: private string GetRegionByStore(string store) { foreach (string items in d.Keys) { if (d[items].Contains(store)) { return items; } } return null; } 这将在字典中搜索一个键,如下所示: d.Add("4Q", n
private string GetRegionByStore(string store)
{
foreach (string items in d.Keys)
{
if (d[items].Contains(store))
{
return items;
}
}
return null;
}
这将在字典中搜索一个键,如下所示:
d.Add("4Q", new string[] { "27", "49", "198", "214", "226", "347", "351", "361", "439", "449", "613", "657", "662", "685" });
有许多条目,如4Q、4Z、4J等,每个条目都有一个字符串[],里面有数字。在另一个条目中永远不会有相同的数字,因此不必担心重复
我现在使用的方法很管用,但感觉很粗糙,而且是一种糟糕的做法。我是否可以通过LINQ查询实现同样的功能
总结:在每个字典中找到一个数字,如果它存在,则返回键。类似于:
var strores = d.Where(e => e.Value.Contains("27")).Select(e => e.Key).ToList();
上面将返回字典集合中的键列表,其中集合的值包含您搜索的字符串。类似于:
var strores = d.Where(e => e.Value.Contains("27")).Select(e => e.Key).ToList();
上面将返回字典集合中的键列表,其中集合的值包含您搜索的字符串
您可以使用以下版本代码:
要在字典中查找所有键,请执行以下操作:
您可以使用以下版本代码:
要在字典中查找所有键,请执行以下操作:
使用Linq:
d.Single(x => x.Value.Contains("198")).Key // would return "4Q" in your example
使用Linq:
d.Single(x => x.Value.Contains("198")).Key // would return "4Q" in your example
我认为这一点也不令人讨厌。我认为这段代码非常简单易懂。我不确定可能存在的LINQ查询是否会像您这里的代码一样容易阅读/理解。我认为这一点都不粗糙。我认为这段代码非常简单易懂。我不确定可能存在的LINQ查询是否会像这里的代码一样容易阅读/理解。>FirstOrDefault方法返回第一个键,其中其collection包含变量存储的值,如果不存在任何键,则返回null,becase是字符串类型的默认值。>FirstOrDefault方法返回其集合包含变量存储值的第一个键,如果不存在任何键返回null,becase是字符串类型的默认值。