我如何计算物品数量&gt;在C#/ .Net中使用Linq的Dictionary <string,int =“”>中的0?

时间:2017-10-13 18:47:24

标签: c# .net linq

您好,我将字典定义为:

Dictionary<string, int> sampleDictionary;

我希望能够做到以下几点:

1)选择项目所在的值列表&gt; 0

我尝试过使用sampleDictionary.SelectMany()和sampleDictionary.Select(), 但我似乎无法正确理解语法。

有人可以帮助我指出正确的方向吗?

谢谢, JohnB

4 个答案:

答案 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();