在 c# 或 vb.net 如何使用 LINQ 统计 Dictionary 中符合条件的对象数量?

Dictionary中的Value是一个自定义类型,其中有一个值为Bool型,请问,我应该如何利用LINQ统计该Dictionary中所有该值为True的记录数量?... Dictionary 中的 Value 是一个自定义类型,其中有一个值为 Bool 型,请问,我应该如何利用 LINQ 统计该 Dictionary 中所有该值为 True 的记录数量? 展开
 我来答
freeeeeewind
推荐于2016-08-19 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1365万
展开全部

见以下示例

using System;
using System.Collections.Generic;
using System.Linq;

namespace MyApplication
{
    class Program
    {
        public class MyClass
        {
            public string Name { get; set; }
            public bool IsTrue { get; set; }
        }


        static void Main(string[] args)
        {
            Dictionary<int, MyClass> dic =
                new Dictionary<int, MyClass>();

            //添加
            dic.Add(1, new MyClass { Name = "张三", IsTrue = false });
            dic.Add(2, new MyClass { Name = "张四", IsTrue = true });
            dic.Add(3, new MyClass { Name = "张五", IsTrue = false });
            dic.Add(4, new MyClass { Name = "张六", IsTrue = true });
            dic.Add(5, new MyClass { Name = "张七", IsTrue = false });

            int c1 = dic.Count(e => e.Value.IsTrue == true);
            Console.WriteLine(c1);  //输出2

            int c2 = dic.Count(e => e.Value.IsTrue == false);
            Console.WriteLine(c2);  //输出3
            
            // 或者    
            var qry1 = from x in dic
                      where x.Value.IsTrue == true
                      select x;
            int c3 = qry1.Count();
            Console.WriteLine(c3); //输出2

            var qry2 = from x in dic
                      where x.Value.IsTrue == false
                      select x;
            int c4 = qry2.Count();   //输出3
            Console.WriteLine(c4);
        }
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式