在C#類我有一個名單列表,和兩個不同的干將:添加項目到列表中,而不會影響
private List<A> a;
public List<A> EveryA
{
get
{
if (a == null) a = new List<A>();
return a;
}
}
public List<A> FilteredA
{
get
{
return EveryA.FindAll(a => a.IsInFilter);
}
}
現在我的問題是:如何對語法FilteredA.Add(this);
?
它編譯並運行,但它不能添加任何項目到任何列表。
更好的編譯器是否必須通知(小)問題?
對於linq的建議+1,如果可以的話,+「另一個1」編譯器不能真正閱讀你的想法。 – phoog 2011-05-13 08:12:55
IEnumerable的建議是非常有用和優雅的,我必須記住這一點。然而,使用Linq的建議對我來說並沒有多大意義。我沒有看到與示例代碼中謂詞的區別?帶「Linq」的 – Gerard 2011-05-13 08:46:03
,我只是指'System.Linq'中提供的擴展方法,即'Where'。在你的例子中與謂詞沒有什麼區別,事實上,我重用了你的謂詞。區別僅在於Linq版本使用懶惰評估。你仍然可以使用你的版本,只是改變返回類型。我從來沒有想到... – 2011-05-13 09:11:53