日期:2014-05-18  浏览次数:20752 次

委托 事件??
C# code
    
    public class obj
    {
        public Int64 guid;
        public int height;
        public string name;
        //其它属性
        public static Dictionary<Int64,obj> GetObjects(Dictionary<Int64,obj>,。。。)
        {
            //其它属性判断

            //
        }
    }



有这样的一个字典Dictionary<Int64, obj>,字典里的Int64是对象实例的标识
有一个方法想得到指定的对象,比如:20<height<40,或者 name=="xxx"(这样的对象可能有多个)
public Dictionary<Int64, int> GetObjects(.....)
请问这个方法该怎么写?

------解决方案--------------------
public static Dictionary<Int64,obj> GetObjects(Dictionary<Int64,obj> dict, Predicate<Int64, obj> predicate)
{
return dict.Where(x => predicate(x.Key, x.Value)).ToDictionary(x => x.Key, x => x.Value);
}
使用:
var result = obj.GetObjects(dict, (x, y) => x > 20 && x < 40 && y == "xxx");