gpt4 book ai didi

.net - LINQ:目标数组不够长,无法复制集合中的所有项目。

转载 作者:行者123 更新时间:2023-12-03 00:10:06 27 4
gpt4 key购买 nike

我有一个Dictionary<string, mystruct>例如,我正在获取所有值的列表:

var list = m_Records.Values.ToList();

我偶尔会收到以下错误:

ArgumentException
Destination array is not long enough to copy all the items in the collection. Check array index and length.

我试图从这条非常基本的 route 找出这是如何可能的。当 VS2010 因该错误而中断时,我可以检查 m_Records并看到它有 24 个条目(略有不同)。但它确实有值,而且 m_Records 肯定不为空。

最佳答案

您是否在调用 ToList 时偶然修改了另一个线程上的字典?这将导致此错误,并且只是偶尔,正如您所说,因为此类问题取决于众所周知的挑剔的线程计时问题。我想不出任何其他原因会发生这种情况。

相反,您应该使用ConcurrentDictionary(或者停止多线程)。 (医生,当我做这个时会很痛。那就别做那个。)

关于.net - LINQ:目标数组不够长,无法复制集合中的所有项目。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8978240/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com