2015-12-02 54 views
0

我有这个类我使用创建值列表静态工厂方法 - 单独的类别列表中保存数据

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

'FirstOrDefault()'是['IEnumerable'扩展(https://msdn.microsoft.com/library /bb340482%28v=vs.100%29.aspx)。你需要导入'System.Linq'命名空间。 – mshsayem

回答

1

FirstOrDefault是一个扩展方法,所以你可以添加以下命名空间:

using System.Linq; 

还有一点:至于AllInstances是类的静态成员,您不必从map实例调用它像MyData,只要你可以从类这样称呼它:

map.AllInstances //access AllInstances through the class name 
+0

谢谢,我现在可以使用它作为其他评论显示。 –

0

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