using System.Collections; using System.Collections.Generic; using System.Linq;var list=new List<string>(); list.Where(x=>{ if(x=="") { return true; } else { return false; } });
突然间发现,Lz你不就想是判断一下有无某个元素吗,为什么要用Find()不是有contains方法吗? 把问题那么复杂化做什么? List<string> myList = new List<string>(); for (int i = 0; i < 10; i++) { myList.Add(i.ToString());//我给他填充1--10 } if (myList.Contains ("3"))//直接这样就ok了 { MessageBox.Show("有这个元素"); }
List<T> l=lst.FindAll(delegate(T t){return t.name.Contains("a");});
或使用LINQ
下面的代码可能会给你一些启示:
private void button1_Click(object sender, EventArgs e)
{
List<string> myList = new List<string>();
for(int i = 0; i < 10; i++)
{
myList.Add(i.ToString ());//我给他填充1--10
} if (myList.Find(MathChar) != null)
{
MessageBox.Show("有这个元素");
}
else
{
MessageBox.Show("没有这个元素");
}
}
private bool MathChar(string str)
{ if (str.Equals("3"))//这里来判断是否有3这个元素
return true;
else
return false;
}
for(int i = 0; i < 10; i++)
{
myList.Add(i.ToString ());//我给他填充1--10
}
List<string > test=myList.FindAll(delegate(string t) { return t.Contains("3") ;});
if (test !=null )
{
MessageBox.Show("有这个元素");
}
else
{
MessageBox.Show("没有这个元素");
}
还有就是这种,你选择试试
{
MessageBox.Show("有这个元素");
}
好像应该改为if(test.count !=0){}
好像应该改为if(test !=null && test.count !=0){}
你的test.count !=0与我的test !=null有很多的区别吗???
对象为null,与对象包含的集合数量为0是完全不一样的概念。
你用string试试就知道了,一个string为null,与一个string=""是完全不一样的,否则string类也不用专门弄一个IsNullOrEmpty了
list.where(p=>p.attr.contains('str'))
还可以自己写一个扩展方法。。
传递一个 委托。返回是true 或者false
想要怎样就怎样
如果test.count =0呢?是不是test !=null?
有这个元素吗?所以应该改为if(test !=null && test.count !=0){}
并且test !=null应该再前面,因为如果test =null,test.count就会“未将对象实例化”。
有这个元素吗? 所以应该改为if(test !=null && test.count !=0){}
并且test !=null应该再前面,因为如果test =null,test.count就会“未将对象实例化”。
{
public string userno;
public string username;
}
class UserComparer<T> : IEqualityComparer<T> where T : userinfo
{ #region IEqualityComparer<T> Members public bool Equals(T x, T y)
{
return x.username == y.username;
} public int GetHashCode(T obj)
{
return obj.username.GetHashCode();
} #endregion
} List<userinfo> infos = new List<userinfo>();
infos.Add(new userinfo() { userno = "001", username = "张某" });
if (infos.Contains(new userinfo() { username = "张某" }, new UserComparer<userinfo>()))
MessageBox.Show("找到该用户");
using System.Collections.Generic;
using System.Linq;var list=new List<string>();
list.Where(x=>{
if(x=="")
{
return true;
}
else
{
return false;
}
});
把问题那么复杂化做什么?
List<string> myList = new List<string>();
for (int i = 0; i < 10; i++)
{
myList.Add(i.ToString());//我给他填充1--10
}
if (myList.Contains ("3"))//直接这样就ok了
{
MessageBox.Show("有这个元素");
}
既然有find这个方法,就有它的可用之处,希望你能深入研究一下什么情况下contain失效,只能用find,不要太浮躁了。