查找一个值v是否存在List>里面字典里面的value

三页菌 2018-03-20 02:31:02
查找一个值v是否存在List<Dictionary<string, object>>里面字典里面的value,如果存在则输出该字典所在的list下标。怎么写比较好呢?
List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>();

Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("88", "a");

Dictionary<string, object> dic2 = new Dictionary<string, object>();
dic2.Add("99", "b");

listDic.Add(dic);
listDic.Add(dic2);

查找"b"是否在listDic里的某个字典中,如果在输出该字典和字典在listDic中的索引
本来打算用for循环,但是感觉应该有更好的办法吧
...全文
1367 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2018-03-20
  • 打赏
  • 举报
回复
引用 3 楼 m0_37796494 的回复:
上面的确实可以,要是能输出是list的第几个字典 list索引 就好了
要下标的话,那就只能产生新对象了。
List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>();

            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("88", "a");
            dic.Add("123", "b");

            Dictionary<string, object> dic2 = new Dictionary<string, object>();
            dic2.Add("99", "b");

            listDic.Add(dic);
            listDic.Add(dic2);

            var q = listDic.Select((x, i) => new
            {
                index = i,
                dict = x.Where(y => y.Value.ToString() == "b")
            });

            foreach (var item in q)
            {
                Console.WriteLine("index:{0}",item.index);
                foreach (var v in item.dict)
                {
                    Console.WriteLine(v.Key+"---"+v.Value);
                }
            }

            Console.ReadLine();
正怒月神 2018-03-20
  • 打赏
  • 举报
回复
引用 2 楼 m0_37796494 的回复:
[quote=引用 1 楼 hanjun0612 的回复:]
static void Main(string[] args)
        {
            List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>();

            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("88", "a");
            dic.Add("123", "b");
            
            Dictionary<string, object> dic2 = new Dictionary<string, object>();
            dic2.Add("99", "b");

            listDic.Add(dic);
            listDic.Add(dic2);

            var q = listDic.SelectMany(x => x.Where(y => y.Value == "b"));

            foreach (var item in q)
            {
                Console.WriteLine(item.Key+"---"+item.Value);
            }

            Console.ReadLine();
        }
问下这个q能转换成字典吗?[/quote] 这个q是 List<Dictionary<string, object>>类型的。因为我在测试数据中,插入了2个 value为b的字典项。
三页菌 2018-03-20
  • 打赏
  • 举报
回复
上面的确实可以,要是能输出是list的第几个字典 list索引 就好了
三页菌 2018-03-20
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
static void Main(string[] args)
        {
            List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>();

            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("88", "a");
            dic.Add("123", "b");
            
            Dictionary<string, object> dic2 = new Dictionary<string, object>();
            dic2.Add("99", "b");

            listDic.Add(dic);
            listDic.Add(dic2);

            var q = listDic.SelectMany(x => x.Where(y => y.Value == "b"));

            foreach (var item in q)
            {
                Console.WriteLine(item.Key+"---"+item.Value);
            }

            Console.ReadLine();
        }
问下这个q能转换成字典吗?
正怒月神 2018-03-20
  • 打赏
  • 举报
回复
static void Main(string[] args)
        {
            List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>();

            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("88", "a");
            dic.Add("123", "b");
            
            Dictionary<string, object> dic2 = new Dictionary<string, object>();
            dic2.Add("99", "b");

            listDic.Add(dic);
            listDic.Add(dic2);

            var q = listDic.SelectMany(x => x.Where(y => y.Value == "b"));

            foreach (var item in q)
            {
                Console.WriteLine(item.Key+"---"+item.Value);
            }

            Console.ReadLine();
        }

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧