发现字典对象中存在一些值

find some value is present in Dictionary Object

我有一个字典 如下。

 key = lookupid::lookupschema::lookupcolumn
 value = lookupvalue


        Dictionary<string, string> KeyValueLookup1 = new Dictionary<string, string>();
        KeyValueLookup1.Add("1::ldap::state","TX");
        KeyValueLookup1.Add("2::ldap::state", "MN");
        KeyValueLookup1.Add("3::ldap::state", "CF");
        KeyValueLookup1.Add("4::ldap::language", "EN");
        KeyValueLookup1.Add("5::ldap::language", "FR");

现在我从用户那里得到了以下数据。 示例 1:

 schemaname = ldap
 lookupcolumn = state
 and value = MN.

现在我需要查明 MN 在 KeyValueLookup1 中是否可用。

 sample2:

 schemaname = ldap
 lookupcolumn = language
 and value = TA.

现在我需要查明 TA 在 KeyValueLookup1 中是否可用。

此外,我还必须确保正在查看的值也具有这些关键参数someid::schemaname::lookupcolumn

试试这个

    var schemaname = "ldap";
    var lookupcolumn = "language";
    var value = "TA";

    var ifAvailable = IfAvailable(KeyValueLookup1, schemaname, lookupcolumn, value); // false

    schemaname = "ldap";
    lookupcolumn = "state";
    value = "MN";

    ifAvailable = IfAvailable(KeyValueLookup1, schemaname, lookupcolumn, value); // true

public bool IfAvailable(Dictionary<string, string> KeyValueLookup, string schemaname, string lookupcolumn, string value)
{
    var result = false;
    foreach (KeyValuePair<string, string> kvp in KeyValueLookup)
    {
        if (kvp.Key.Contains("::" + schemaname + "::" + lookupcolumn) && kvp.Value.Contains(value))
        {
            result = true;
            break;
        }
    }
    return result;
}