静态工厂方法 - 单独的类以保存列表中的数据

时间:2015-12-02 10:58:18

标签: c# .net wpf extension-methods

我有这个课我正在用来创建一个值列表

public class map
{
    private static List<map> mapValues = new List<map>();
    public static IEnumerable<map> AllInstances
    {
        get { return mapValues; }
    }

    public int Row { get; set; }
    public int Column { get; set; }
    public Object theobject { get; set; }

    private map()   // Private ctor ensures only a member
    {               // function can create a new map
    }
    public static map Create()
    {
        var mv = new map();
        mapValues.Add(mv);
        return mv;
    }

    public static void Delete(map itemToRemove)
    {
        mapValues.Remove(itemToRemove);
    }
}

我的课程来自this comment

但是当我来到var Foundit = MyData.AllInstances.FirstOrDefault(md => md.Device == "blah");Myclass没有此FirstOrDefault

这个列表的想法是有一个类似于网格/地图的系统,用于在WPF画布中放置对象。

我错过了什么让这个工作?

2 个答案:

答案 0 :(得分:1)

FirstOrDefault是一种扩展方法,因此请尝试添加此命名空间:

using System.Linq;

另一点:AllInstances是静态类成员而言,您不必从map实例(如MyData)调用它,只需你可以从类中调用它:

map.AllInstances  //access AllInstances through the class name

答案 1 :(得分:0)

在您要使用using System.Linq;的文件顶部添加.FirstOrDefault(...)