首页 新闻 会员 周边

查询数组中是否存在指定的元素

0
悬赏园豆:5 [已解决问题] 解决于 2009-02-16 00:37

List<long> a;

a里面包含的元素1,2,3,4,5

现在要查询的元素为 3

我用 List<T>.Exists(3)  老用不起来

望大家能指教一二 谢谢了

hekai的主页 hekai | 初学一级 | 园豆:85
提问于:2009-02-15 21:35
< >
分享
最佳答案
0

exists的参数是predicate<T>,不是一个long型参数。

.net2.0 匿名委托方式: a.exists(delegate(long n) {return n == 3;})

.net3.5 lambda表达式: a.exists(n => n == 3)

Todd Wei | 初学一级 |园豆:170 | 2009-02-15 22:49
其他回答(3)
0

System.Collections.Generic.List<T>
public bool Exists(
 Predicate<T> match
)
这个地方不应该用List<T>.Exists(3)这种吧……

这里应该用一个谓词,也就是(xx 是 3)这种东西。一般用lambda表达式。

但是实际上一般查询一个集合里面有没有一个东西常用的是Dictionary<TKey, TValue>的ContainsKey方法或者HashSet<T>的Contains方法。

地狱门神 | 园豆:240 (菜鸟二级) | 2009-02-15 22:10
0

 List<long> list = new List<long>();
            for (int i = 1; i < 6; i++)
            {
                list.Add(i);
            }
            Response.Write(list.Where(p => p == 3).Count() == 1 ? true : false);

seek | 园豆:140 (初学一级) | 2009-02-15 22:17
0

用LINQ的话:

bool result = a.Contains(3);

List本身有Contains方法,因此上面的语句应该会被指向到List提供的COntains方法

Gray Zhang | 园豆:17610 (专家六级) | 2009-02-15 22:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册