静态工厂方法 - 分隔 Class 以将数据保存在列表中

Static factory method - Separate Class to hold data in a list

我有这个 class 我正在使用它来创建值列表

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);
    }
}

我根据class this comment

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

此列表的想法是有一个 grid/map-like 系统用于在 WPF canvas 中放置对象 canvas。

我缺少什么才能让它正常工作?

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

FirstOrDefault 是一个扩展方法,所以尝试添加这个命名空间:

using System.Linq;

另一点: 至于 AllInstances 是一个静态 class 成员,你不必从 mapMyData 这样的实例,你可以像这样从 class 中调用它:

map.AllInstances  //access AllInstances through the class name