我有以下两个问题
List<User> allUsers= dbContext.Users.ToList();
List<User> topTenUsers = dbContext.Users.Take(10).ToList();
Run Code Online (Sandbox Code Playgroud)
它们是实例类的属性,它们都加载数据,如下面的代码:
using (var dbContext = new fooDataObjects.DataContext()) {
//...they are loaded here
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试从allUsersi 访问结果集合时,会得到一个异常,上面写着"无法访问已处置的对象".但是我可以从中访问结果集合topTenUsers.
Take()强制LINQ枚举我可以从第二个集合中获得结果的结果元素吗?
实例设置为null后,实例委托方法如何仍可访问?下面的代码中的操作委托指向实例方法,但在将实例设置为null后,该方法仍然可用.
public class Work { public string Name{get;set;} }
public class Worker
{
public void Do(Work work)
{
Console.WriteLine("'{0}' is done.", work.Name);
}
}
public class BatchWorker
{
private List<Work> _works;
public readonly Action<Work> Worker;
public BatchWorker(Action<Work> worker)
{
_works = new List<Work>();
Worker = worker;
}
public void AddWork(Work work)
{
this._works.Add(work);
}
public void DoWorks()
{
this._works.ForEach(this.Worker);
}
}
public class Program{
public static void Main(){
var worker = new Worker();
var batchWorker = new BatchWorker(worker.Do);
batchWorker.AddWork(new Work …Run Code Online (Sandbox Code Playgroud)