List<T>.FindAll 我有好多不同类型的List,分散在不同的类中,现在想通过一处写个共通的查找的逻辑(按某一属性等于一个传入的参数值),然后这些List能实现这个共通的,方便修改,以后只需要修改一处就OK。怎么做呀,会用到反射的。谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写一个泛型方法: public List<T> FindAll<T>(List<T> list, string propName, object value) { return list.FindAll(delegate(T obj) { Type t = typeof(T); PropertyInfo pi = t.GetProperty(propName, BindingFlags.Instance | BindingFlags.Static| BindingFlags.Public | BindingFlags.NonPublic); if (pi == null) return false; return pi.GetValue(obj, null) == value; }); } 反射对性能有影响啊,不同类型实现不同的compare方法比较好 C# 读取pop3邮件 求助c# word excel 格式文件转tif 新人跪求,,,配置文件的读写 这个怎么弄啊 在listview中选中了一项,怎么知道选中的是第几项,急,帮忙一下,谢谢 100求教:将win模式写的.dll放在.aspx中,在本机上能正常运行,为什么在网络中另一机器上无法运行?求解决之道 (请大家攻击小日本)转载 关于Process.CloseMainWindow的问题 C#的简单类型问题(有经验的帮我回答) winform 非常简单vs2008窗体设计的小问题 C#下使用SendMessageW 的WM_GETTEXT不能工作 VS2005环境
{
return list.FindAll(delegate(T obj)
{
Type t = typeof(T);
PropertyInfo pi = t.GetProperty(propName, BindingFlags.Instance | BindingFlags.Static| BindingFlags.Public | BindingFlags.NonPublic);
if (pi == null)
return false;
return pi.GetValue(obj, null) == value;
});
}