如何使用linq检查namevaluecollection中是否存在键/值

时间:2012-05-10 07:06:49

标签: asp.net

如何使用LINQ检查NameValueCollection中是否存在键/值 我有一个Name-Value集合,其中包含一些键及其相应的值。我需要检查集合中是否存在特定的键或值。我需要这个

的vb.net代码

我需要使用LINQ。您可以提供LINQ语句来从NameValueCollection

获取项目

我使用具有多个值的相同键填充Name-Value集合。我想检查集合中是否存在具有特定值的特定键

这是代码

Dim nvproducts as new namevaluecollectionn
nvproducts.Add("1", "A")
nvproducts.Add("1", "I")
nvproducts.Add("2", "I")
nvproducts.Add("1", "A")

从这个namevaluecollection我需要检查一个名为valuevaluecollection的密钥是1和值A.我想在linq中做到这一点

3 个答案:

答案 0 :(得分:0)

您可以使用NameValueCollection NameVlaueCollectionCount

的Count属性
 NameValueCollection myCol = new NameValueCollection();
      myCol.Add( "red", "rojo" );
      myCol.Add( "green", "verde" );
      myCol.Add( "blue", "azul" );
      myCol.Add( "red", "rouge" );

获取总计数使用

int TotalCount = myCol.Count;

迭代它就像这样使用

 foreach ( String s in myCol.AllKeys )
         Console.WriteLine( " Key  {0,-10} Value: {1}", s, myCol[s] );

您可以参考此链接获取更多信息NameValueCollection

已更新:尝试使用此功能获取特定键的所有值的计数

var ValuesCount= myCol.GetValues("red").Count()

答案 1 :(得分:0)

让我们说你有

NameValueCollection myCol = new NameValueCollection();
myCol.Add("key1", "value1");
myCol.Add("key2", "value2");
myCol.Add("key2", "value3");

string k = "key2";
string v = "value2";

然后您可以检查密钥k是否具有值v,如下所示:

bool result = 
        myCol.AllKeys.Contains(k) && 
        myCol.GetValues(k).Contains(v);

或类似的东西:

bool result =
      (from string key in myCol.AllKeys
       where key == k
       select myCol.GetValues(k).Contains(v)
      ).FirstOrDefault(hasValue => hasValue == true);

答案 2 :(得分:0)

更容易

    Dim lbHasKey As Boolean
    Try
        Dim lsValue As String = mShowCountInMemoryColl.Get(lsCodigoID)
        lbHasKey = True
    Catch exHasKey As Exception
        lbHasKey = False
    End Try