方法一:
用 list<T>.FindAll(delagate <t> match)
list<UserInfo> userlist;
*******
userlist.FindAll(delegate(UserInfo userinfo) {
return userinfo.Username.Contains(txUserName.Text.Trim());
} );
其中userinfo.Username.Contains(txUserName.Text.Trim()) 是搜索条件;
返回一个bool值,如果返回true,这条数据就选出来,如果为false,就丢弃;
要注意delegate(UserInfo userinfo),注意一下这个匿名函数的参数,和后面的条件,参数userinfo,
条件userinfo.Use.....,这就是他们怎么联系起来的。
userlist.FindAll返回的 的是 List<UserInfo> 类型,就得到查找的数据了。
其中,模糊的部分,就是 Contains(string str), 这是个string 类型方法,返回bool值,
意思是否包含str字符串。
方法二:
如果是查找List<T>中的string项, 可以用string.Contains(string value)方法。
再利用foreach遍历整个list进行查找。
foreach(UserInfo user in AllUsers){
if(!user.Username.Contains(username)) continue;
userlist.Add(user);
}
排序:
userlist.Sort(delegate(UserInfo u1, UserInfo u2) {
return Comparer<string>.Default.Compare(u1.UserName, u2.UserName);
});