0

如何使用 LINQ 检查 NameValueCollection 中是否存在键/值 我有一个包含一些键及其对应值的名称值集合。我需要检查集合中是否存在特定的键或值。我需要这个 vb.net 代码

我需要使用 LINQ。你能提供 LINQ 语句来从 NameValueCollection 中获取项目吗

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

这是代码

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

从这个namevaluecollection中,我需要检查namevaluecollection中是否有一个值为1的键和值A。我想在 linq 中做

4

3 回答 3

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()

于 2012-05-10T07:19:09.513 回答
0

假设你有

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

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

然后你可以检查 keyk是否有这样的值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);
于 2012-05-10T09:21:49.510 回答
0

更容易

    Dim lbHasKey As Boolean
    Try
        Dim lsValue As String = mShowCountInMemoryColl.Get(lsCodigoID)
        lbHasKey = True
    Catch exHasKey As Exception
        lbHasKey = False
    End Try
于 2013-02-09T01:01:00.730 回答