您好,我将字典定义为:
Dictionary<string, int> sampleDictionary;
我希望能够做到以下几点:
1)选择项目所在的值列表&gt; 0
我尝试过使用sampleDictionary.SelectMany()和sampleDictionary.Select(), 但我似乎无法正确理解语法。
有人可以帮助我指出正确的方向吗?
谢谢, JohnB
答案 0 :(得分:3)
你有几种方法。
一种是获取字典的Values属性,然后对其执行linq操作。
sampleDictionary.Values.Where(...).Select(...)
另一种是使用每个键值对的value
属性
sampleDictionary.Where(x => x.Value > 0).Select(x => x.Value);
答案 1 :(得分:0)
您可以随时使用此方法。
foreach(int i in sampleDictionary.Values)
{
if(i > 0)
{
//...
}
}
答案 2 :(得分:0)
您可以使用查询语法来执行此操作。如果您不熟悉Linq,我认为这更容易理解。
Dim sampleDictionary As New Dictionary(Of String,Integer)
Dim countZero = (From item In sampleDictionary
Where item.Value > 0
Select item).Count
如果你想要更短的语法
,你也可以使用lambda样式答案 3 :(得分:0)
此代码将计算值大于零的项目数。
var result = (from x in sampleDictionary.Values where x > 0 select x).Count();