2010-03-20 87 views
2

什麼是錯的這樣的代碼LINQ到選擇自定義對象

public List<SearchItem> Search(string find) 
     { 


      return (from i in _dataContext.News where i.Text.Contains(find) select new SearchItem { ControllerAction = "test", id = i.Id.ToString(), LinkText = "test" }).ToList(); 
     } 

public struct SearchItem 
    { 
     public string ControllerAction; 
     public string LinkText; 
     public string id; 
    } 

回答

2
new SearchItem() {...} 

//沒有.ToList(),否則你不需要類(屬性get/set S/BA班),你可以說新的

+0

你能解釋一下沒有ToList和get/set嗎? – kusanagi 2010-03-20 08:02:47

+0

因爲你可以看到它不是類但結構,我需要類? – kusanagi 2010-03-20 08:04:45

+0

我正在學習快速反應的藝術......由於方法sig,唯一必須的是ToList ()。你可以對公共成員使用結構,但這是一個「哲學問題」,它會限制你的數據綁定和版本選項。具有屬性的類別在公開時更適合「規範」。除了通過{}分配外,您還可以使用ctor方法(括號內)。使用隱式/顯式無參數ctor對於用於集合或通用約束的類是有利的(但struct需要隱式無參數ctor)。如果有意義,請使用struct。 – 2010-03-20 11:55:27