abh*_*bhi 12 c# collections list
我在我正在研究的.NET项目中注意到了这个功能.
private static void RemoveAllElements(ref List<int> listToBeRemoved)
{
foreach (var i in listToBeRemoved)
{
listToBeRemoved.Remove(i);
}
}
Run Code Online (Sandbox Code Playgroud)
这是从列表中删除所有元素的最快方法吗?我也注意到这个函数没有捕获任何异常.我应该改变吗?这是现有的代码.
vcs*_*nes 44
我不明白为什么你不能简化它
listToBeRemoved.Clear();
Run Code Online (Sandbox Code Playgroud)
您可以查看MSDN文档以获取更多详细信息.
我认为您不需要添加任何异常处理逻辑.该Clear
方法在内部使用Array.Clear
,作为Success和WillNotCorruptState的可靠性契约.我无法想象会如何引发异常.
list.Clear()
Run Code Online (Sandbox Code Playgroud)
请参阅文档:http://msdn.microsoft.com/en-us/library/dwb5h52a.aspx
更改您枚举的集合会使枚举器无效,因此这是非常糟糕的做法.请参阅List.GetEnumerator上的备注:
只要集合保持不变,枚举器仍然有效.如果对集合进行了更改(例如添加,修改或删除元素),则枚举数将无法恢复,并且其行为未定义.
该Clear
方法本身不会抛出异常,但如果listToBeRemoved
是null
,则会得到一个异常NullReferenceException
.
归档时间: |
|
查看次数: |
32353 次 |
最近记录: |