静态工厂方法 - 分隔 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 成员,你不必从 map
像 MyData
这样的实例,你可以像这样从 class 中调用它:
map.AllInstances //access AllInstances through the class name
我有这个 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 成员,你不必从 map
像 MyData
这样的实例,你可以像这样从 class 中调用它:
map.AllInstances //access AllInstances through the class name