我学习 LINQ,我想使用挂起的请求,但我有这个问题
List<string> _strs = new List<string> { "1", "2", "1", "1", "0" };
var selind = _strs.Select((name, ind) => new { indexname = name, index = ind }).Where(o => o.indexname == "1");
string sind = "";
foreach (var item in selind)
sind += item.index.ToString() + " ";
//i get 0 2 3
_strs.Add("2");
_strs.Add("1");
sind = "";
foreach (var item in selind)
sind += item.index.ToString() + " ";
//Good, i get 0 2 3 6
_strs = new List<string>() { "1" };
sind = "";
foreach (var item in selind)
sind += item.index.ToString() + " ";
//Why i get again 0 2 3 6
好的,我明白为什么,但我想知道两件事:
我应该如何清除内存?
selind = null; 或者你能告诉我更好的方法吗?
在完全重建 _strs 后与 selind 一起工作,我找到了两种方法
_strs.Clear(); _strs.Add();
或再次致电
selind = _strs.Select((name, ind) => new { indexname = name, index = ind }).Where(o => o.indexname == "1");
你能告诉我另一种方式吗?
提前致谢!