?,c#,linq"/>

首页 > 解决方案 > 使用 Linq 从字典中选择子集?

问题描述

我是新手C#,我正在尝试使用 LINQ(或其他方法?)来选择Dictionary<string, int>值(int)大于 5 的对象的子集。

+-------------+------------+
| Key(string) | Value(int) |
+-------------+------------+
|         000 |          0 |
|         111 |          1 |
|         222 |          2 |
|         333 |          3 |
|         444 |          4 |
|         555 |          5 |
|         666 |          6 |
|         777 |          7 |
|         888 |          8 |
|         999 |          9 |
+-------------+------------+

我用这段代码创建了上面的字典对象,以简单地用一些数据填充字典:

        Dictionary<string, int> linkCounter = new Dictionary<string, int>();

        for (int i=0; i<=9; i++)
        {
            string key = i.ToString() + i.ToString() + i.ToString();
            for (int n=0; n<=i; n++)
            {
                if (linkCounter.ContainsKey(key))
                {
                    linkCounter[key]++;
                }
                else
                {
                    linkCounter.Add(key, 0);
                }
            }
        }

我怎样才能做相当于:

foreach (KeyValuePair<string, int> kvp in linkCounter [其中 kvp.value > 5])

标签: c#linq

解决方案


添加

using System.Linq;

然后使用Where

var subset = linkCounter.Where(x => x.Value > 5);
foreach(KeyValuePair<string, int> kvp in subset)
{
   // your code
}

推荐阅读