为了简单起见,我有以下字典,我为每个字符串键填充了未知数量的字符串。我还有以下字符串列表。
var dict = new Dictionary<string, List<string[]>>();
IList<string> headerList = new List<string>();
如何检查列表中的字符串是否为字典中的值? 我的数据与此类似:
Key Value
----- ------------------
Car honda, volks, benz
Truck chevy, ford
我需要检查“honda”是否包含在字典值中。我想我需要做类似以下的事情来查看值是否包含列表,其中包含有问题的字符串。请记住,我对C#还不熟悉。
foreach (string header in headerList)
{
// This is wrong, I don't know what to put in the if statement
if (dict.ContainsValue(r => r.Contains(header)))
{
// do stuff
}
}
答案 0 :(得分:4)
John Odom是对的,你需要一个List。
我建议您在内部使用$(function () {
if (window.location.pathname.indexOf('/u') == 0) {
var imgdefondo = $('#field_id2 dd.ajax-profil_parent div.field_uneditable').text();
//*****imagen de fondo*****//
$("td.row1 div#profile-advanced-details.genmed").css("background", "url('imgdefondo') no-repeat center");
}
});
作为HashSet<string>
的值。例如。 Diictionary
然后在查询时你可以这样做:
Dictionary<string, HashSet<string>>
答案 1 :(得分:0)
如果您只想知道字典是否包含汽车麸(例如&#34; honda&#34;),您可以使用此查询:
bool isInDict = dict.Values
.SelectMany(lst => lst)
.Any(car => car == "honda");
要返回存储值的键,您可以使用以下内容:
string containingKey = dict.Keys
.Where(key => dict[key].Contains("honda"))
.FirstOrDefault();
要获取值发生的整个列表,请运行:
List<string> containingList = dict.Values
.Where(v => v.Contains("honda"))
.FirstOrDefault();
在第一种情况下,如果有任何值是搜索到的汽车名称,您只需将所有列表展平并检查所有列表。如果为true,则该值在字典中。
第二个:获取所有密钥。将每个键应用于字典以获取相应的列表,并检查列表是否包含汽车名称。返回找到汽车名称的第一个键。
第三个 - 类似于第二个,但我们对值进行搜索。检查值(即List)是否包含汽车名称。返回包含名称的第一个集合。