https://github.com/JackYan666/CSharpCode/blob/main/CSharpCode.cs
1.For循环删除集合元素可能漏删:从后面往前删除
2.Foreach不能直接修改集合元素:用递归的思想,删除完了的集合重新遍历
3.闭包问题:for循环存在闭包,可以通过使用临时变量解决;Task存在闭包问题可以通过wait解决,可以通过使用临时变量解决(但是在Unity中是无序的);foreach不存在闭包问题;
4.string修改简要使用StringBuilder,直接+=会重新开辟一段内存地址,费性能
5.Equals和==的比较
1.Equals是比较值是否相同
2.==是比较引用地址是否相同
3.string 类型是个特例,因为他的内部对这两个都进行了重写。
重写后他比较的则是两个变量具有相同的值,重写后的 == 操作符内部调用的即是 equals 方法