首页 新闻 赞助 找找看

一个查找方法改写 Lambda 表达式,求教!

0
悬赏园豆:10 [已解决问题] 解决于 2016-09-27 17:00
List<object[]> SearchObjectList(List<object> objList, int listIndex, string search)
        {
            List<object[]> list = new List<object[]>();
            foreach (object[] obj in objList)
            {
                if ((obj[1] as object[])[0].ToString() == search)
                {
                    list.Add(obj);
                }
            }
            return list;
        }
问题补充:

数据源是一个多层的嵌套数组

散客游的主页 散客游 | 初学一级 | 园豆:9
提问于:2016-09-27 15:58
< >
分享
最佳答案
0

自己改好了,谢谢.Where(x => ((x as object[])[1] as object[])[0].ToString() == search)

散客游 | 初学一级 |园豆:9 | 2016-09-27 16:59
其他回答(2)
0

objList.where(m=>((object[][])m)[1][0].ToString()==search )

收获园豆:10
吴瑞祥 | 园豆:29449 (高人七级) | 2016-09-27 16:09

无法将类型为“System.Object[]”的对象强制转换为类型“System.Object[][]”。

改成Where(p => ((p as object[][]))[1][0].ToString() == search )之后,说 "未将对象引用设置到对象的实例。"

支持(0) 反对(0) 散客游 | 园豆:9 (初学一级) | 2016-09-27 16:16

sorry "未将对象引用设置到对象的实例。" 是因为加了 Single()  , 其实应该是返回了null 没找到, 应该是表达式不对导致的,不知道怎么写了....

支持(0) 反对(0) 散客游 | 园豆:9 (初学一级) | 2016-09-27 16:24

自己改好了,谢谢.Where(x => ((x as object[])[1] as object[])[0].ToString() == search)

支持(0) 反对(0) 散客游 | 园豆:9 (初学一级) | 2016-09-27 16:58
0

嵌套这么多。这个改很难么?

顾晓北 | 园豆:10844 (专家六级) | 2016-09-27 16:34

这个数据源是别人的...

支持(0) 反对(0) 散客游 | 园豆:9 (初学一级) | 2016-09-27 16:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册