怎么实现在List结果中搜索?

OS_50 2007-04-09 01:04:16
假设先从数据库搜索Customer 的name是 *Zhang?

返回一个List<Customer>结果集,现在怎么实现在这个结果中搜索,

条件还是 "Customer 的name是 *Zhang? "
(*?等正则表达式一定要支持)
...全文
231 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mahui.me 2009-09-12
  • 打赏
  • 举报
回复
List<Customer> Search(List<Customer> customer, string filter)
{
return customer.Find(
delegate(Customer cus)
{
return Regex.IsMatch(cus.name, filter);
});
}
he_8134 2007-04-09
  • 打赏
  • 举报
回复
Linq要.net3.5才有,自己写一个凑和着用吧~~
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;


namespace ConsoleApplication5
{
class Program
{

static void Main(string[] args)
{

Customer c1 = new Customer("张三");
Customer c2 = new Customer("李四");
Customer c3 = new Customer("张学友");
Customer c4 = new Customer("刘德华");
List<Customer> customers=new List<Customer>();
customers.Add(c1);
customers.Add(c2);
customers.Add(c3);
customers.Add(c4);

ListSearcher<Customer> searcher = new ListSearcher<Customer>();

//搜索所有姓张的客户
Customer[] results = searcher.SearchField(customers, "name", "张");

foreach (Customer c in results) {
Console.WriteLine(c.name);
}
Console.Read();
}

}
class Customer {
public string name;
public Customer(string name) {
this.name = name;
}
}
class ListSearcher<T>{
Type type;
public ListSearcher() {
type = typeof(T);
}
public T[] SearchField(List<T> lists, string fieldname, string keyword)
{
System.Reflection.FieldInfo field = type.GetField(fieldname);
List<T> results = new List<T>();
foreach(T c in lists){
string value = field.GetValue(c) as string;
if (value.IndexOf(keyword) != -1) {
results.Add(c);
}
}
return results.ToArray();
}
}
}
namhyuk 2007-04-09
  • 打赏
  • 举报
回复
帮顶。
he_8134 2007-04-09
  • 打赏
  • 举报
回复
Linq
OS_50 2007-04-09
  • 打赏
  • 举报
回复
Up

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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