List<Func<InstagramUser,bool>>
のコレクションをフィルタリングするために を列挙しようとして失敗しましたList<InstagramUser>
。display()
私のコードはコンパイルされますが、呼び出されたときにフィルター処理されていないリスト全体が返されます。
私の質問は、別のコレクションをフィルタリングするために使用できるラムダ式のコレクションを保持する適切な方法は何ですか?
public class InstagramDisplay {
public IList<InstagramUser> instagramUsers;
public IList<Func<InstagramUser, bool>> instagramFilters;
public InstagramDisplay() {
instagramUsers = new List<InstagramUser>();
instagramFilters = new List<Func<InstagramUser, bool>>();
}
public void addFilter(Func<InstagramUser, bool> filter, object filterValue) {
if ((int)(filterValue ?? 0) > 0)
instagramFilters.Add(filter);
}
public IEnumerable<InstagramUser> display() { //filter not working
instagramFilters.ToList().ForEach(filter => instagramUsers.Where(filter));
return instagramUsers;
}
}
呼び出し - フィルタリングされていない完全なコレクションを返すだけです。
InstagramDisplay instagramDisplay = new InstagramDisplay();
instagramDisplay.instagramUsers = (List<InstagramUser>)context.Cache[CACHE_KEY];
instagramDisplay.addFilter(u => u.id == instagramId, instagramId);
context.Response.Write(javascriptSerializer.Serialize(instagramDisplay.display());