如何使用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中做到这一点
答案 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