我经常遇到我想在我声明它的地方评估查询的情况.这通常是因为我需要多次迭代它并且计算起来很昂贵.例如:
string raw = "...";
var lines = (from l in raw.Split('\n')
let ll = l.Trim()
where !string.IsNullOrEmpty(ll)
select ll).ToList();
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,如果我不打算修改结果,那么我不妨打电话给ToArray()而不是ToList().
我想知道是否ToArray()通过第一次调用实现,ToList()因此内存效率低于仅调用ToList().
我疯了吗?我应该只是打电话ToArray()- 安全且安全地知道内存不会被分配两次吗?
IEnumerable和之间有什么区别Array?
IList和之间有什么区别List?
这些似乎具有相同的功能.
myGenericList.RemoveAll(x => (x.StudentName == "bad student"));
Run Code Online (Sandbox Code Playgroud)
效果很好,但绑定列表没有这种方法.如何为绑定列表创建一个扩展方法,该方法将谓词作为输入,并像List的canned removeall一样进行魔术
谢谢