2015-12-02 15 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(...)