list 相关问题

列表标签可以指代:链表(有序的节点集,每个节点引用其后继节点)或动态数组的形式。不要用于HTML列表,而是使用[html-lists]。

使用 LINQ to CSV 合并两个文件的内容

这可能是一个愚蠢的问题,但我想知道如何使用 CSV 文件的以下数据填充列表。 这是到目前为止的代码, 班级信息 { [CsvColumn(名称 = "租赁名称", 字段...

回答 3 投票 0

即使使用某些值初始化,python dict 也会给出关键错误

数据={} 织女星={} 对于 ['BTC'] 中的硬币: vega[硬币] = {} 数据[硬币] = {} 数据[硬币]['列']=['27-Apr-24', '28-Apr-24', '29-Apr-24', '03-May-24', '10-May-24' , '24 年 5 月 17 日', '24 年 5 月 31 日'] ...

回答 2 投票 0

如何组合两个列表,删除重复项,而不改变列表的元素顺序?

我想合并两个列表并删除重复的值。 假设我有两个列表: lst1 = [23,15,46,76,45] lst2 = [43,32,15,49,45,10] 我想输出: 结果 = [23,15,46,76,45,43,32,49,10] 在

回答 8 投票 0

从字符串中删除数字

有一个包含数字列表的文件。 例子: AK 0.00° 0.00 0.00 0.00 0.00 0.00 0.00 750.00 0.00 0.00 0.00 0.00 ...

回答 1 投票 0

如何在C#中打印List<string>类型的对象

我是c#新手,我想打印List类型的对象。如何打印该对象并在控制台中显示列表? 下面是我的代码: 课程计划{ 公共列表 GetPowersOf...

回答 5 投票 0

List<T>.AddRange 在传递 ConcurrentDictionary 作为参数时抛出 ArgumentException

今天我怀疑 List.AddRange 方法使用并发集合作为参数可能不安全,所以我做了一个实验来找出答案: 并发词典 今天我怀疑 List<T>.AddRange 方法使用并发集合作为参数可能不安全,所以我做了一个实验来找出答案: ConcurrentDictionary<int, int> dictionary = new(); for (int i = 1; i <= 50_000; i++) dictionary.TryAdd(i, default); List<KeyValuePair<int, int>> list = new(); Thread thread = new(() => { for (int i = -1; i >= -50_000; i--) dictionary.TryAdd(i, default); }); thread.Start(); list.AddRange(dictionary); // Throws thread.Join(); Console.WriteLine($"dictionary.Count: {dictionary.Count:#,0}, list.Count: {list.Count:#,0}"); 在线演示. ConcurrentDictionary 用 50,000 个正键初始化。然后在另一个线程上添加 50,000 个额外的负键,同时使用 AddRange 方法将字典添加到列表中。我预计最终字典将有 100,000 个键,列表将包含 50,000 到 100,000 个项目。事实上我得到了一个ArgumentException: Unhandled exception. System.ArgumentException: The index is equal to or greater than the length of the array, or the number of elements in the dictionary is greater than the available space from index to the end of the destination array. at System.Collections.Concurrent.ConcurrentDictionary`2.System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(KeyValuePair`2[] array, Int32 index) at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection) at System.Collections.Generic.List`1.AddRange(IEnumerable`1 collection) at Program.Main() 我的问题是:为什么会发生这种情况,我该如何防止它发生?有什么方法可以确保 list.AddRange(dictionary); 行始终成功,不会抛出异常? 想象一下,这本字典可能是作为 IEnumerable<T> 提供给我的,而我不知道它的底层类型。在这种情况下也会引发相同的异常: IEnumerable<KeyValuePair<int, int>> enumerable = dictionary; list.AddRange(enumerable); // Throws 这种行为降低了我对使用 List<T>.AddRange API 的信心。 上下文:this问题中提到了类似的症状,但没有提供最小且可重现的示例,因此我不确定情况是否相同。另一个相关的问题是 this,关于在 ToList 上调用 LINQ ConcurrentDictionary<TKey, TValue>。尽管如此,文档 警告 关于在并发集合上使用扩展方法,但我是没有看到任何关于使用并发集合与 List<T>.AddRange 方法的警告。 发生的事情相当简单。 List<T>.AddRange 有一个检查,看看它传递的东西是否是 ICollection<T>。如果是这样,它可以通过使用 ICollection<T>.Count 一次性为新范围分配足够的空间(而不是可能多次调整列表大小)和 ICollection<T>.CopyTo 一次性复制集合的元素而不是添加它们来进行优化一对一。 代码是这里: if (collection is ICollection<T> c) { int count = c.Count; if (count > 0) { if (_items.Length - _size < count) { Grow(checked(_size + count)); } c.CopyTo(_items, _size); _size += count; _version++; } } ConcurrentDictionare<TKey, TValue>实现了ICollection<KeyValuePair<TKey, TValue>>,并且它的Count和CopyTo的实现本身是安全的,但它们之间没有固有的同步。 因此 List<T>.AddRange 向字典询问其大小,分配该数量的新元素,然后要求字典将自身复制到新分配的空间中。然而,字典到那时已经增长了,并抛出异常here: int count = GetCountNoLocks(); if (array.Length - count < index) { throw new ArgumentException(SR.ConcurrentDictionary_ArrayNotLargeEnough); } 至于谁应该“怪罪”这里,我不确定。 List<T> 所做的优化在大多数情况下都是明智的,并且作为一个非线程安全集合,它并不试图成为线程安全的。 ConcurrentDictionary 正在尽可能地实现 ICollection<T>,并且如果要求复制到的空间不够大,ICollection<T>.CopyTo 会被 记录为抛出。

回答 1 投票 0

List<T> AddRange 抛出 ArgumentException

我有一个特定的方法,偶尔会因 ArgumentException 而崩溃: 目标数组不够长。检查 destIndex 和长度,以及数组的下限: 在 System.Array...

回答 2 投票 0

如何从另一个列表中的列表中获取坐标元组

我有以下清单: 列表 = [[0, 0, 1], [1,0,0], [0, 1, 0]] 我的目标是从这个列表返回一组包含每个值的坐标(行、列)的元组...

回答 1 投票 0

使用 linq 将字典值转换为列表

以下代码给出“lambda 表达式的计算在调试器中无效”。 请从下面提出我做错的地方 - 列表 lstFiedls; lst字段 =

回答 3 投票 0

如何在完成后从容器中删除`std::thread`?

类中有一个std::list,另一个线程可以添加一些。如何处理完成后从列表中删除线程元素的责任? 我以为...

回答 1 投票 0

如何导入元素并从 txt 文件中删除字符以及提取某些元素以在 tkinter 中使用

所以,我正在完善我的程序,我从服务器程序上的 OHM 获取温度和负载传感器数据,将其放入 dict() 结构中,然后在收到

回答 1 投票 0

如何打印已添加到列表中的 Linq 值,而不是 C# 中的“System.Collections.Generic.List`1[System.Int32]”?

我正在制作一个三个或更多的游戏,这意味着我需要让程序识别重复的值(对于 3 个同类函数)。 我创建了一个 Die 类,它滚动一个伪随机整数......

回答 1 投票 0

过滤字典列表并将新的 key:value 从循环项添加到列表中的所有字典

我正在尝试准备一个字典列表,其中包含从 JSON 文件接收到的所有所需数据。我已经解析了该文件,看起来不错,但我仍然需要: 将新元素添加到列表中的每个字典“

回答 1 投票 0

计算过滤列表中的不同值(Libre Office Calc)

我想在 Libre Office Calc 中计算 B23:B2000 范围内的不同值(日期)。 此外,如果应用过滤器,结果应该会改变。 范围 B23:B2000 由真实日期组成(例如,我...

回答 1 投票 0

制作带有限制的列表/生成器的最Pythonic方法

我想在 matplotlib 中绘制一个函数,但仅限于由两个浮点数(例如 2.6 和 8.2)界定的范围内。为此,我需要一个包含两个浮点边界的列表或生成器,例如 [2.6, 3, 4,...

回答 2 投票 0

如何在 python 中将列表中的元素移动到末尾

我有一个称为值的字符串列表,我想让列表中的一个元素成为最后一个元素。例如,如果我有字符串: ['字符串1','字符串2','字符串3'] 我想要 string2 t...

回答 7 投票 0

在包含空项的列表上使用带有谓词的 Exists<T>

) 但我得到一个错误 NullReferenceException:对象引用未设置到实例...

回答 1 投票 0

如何使用多个对象中的字段创建新列表,而无需手动设置字段

我想使用 FhExtra 中的字段和 FhExtraImportResults 中的其他字段创建一个列表。这个类有很多字段;我只放了几个。我无法编辑 FhExtraImportResults 和 FhExtra

回答 1 投票 0


尝试跟踪此功能,以便在程序运行 x 次后,会发生事情

我为我的项目制作了这个俄罗斯轮盘游戏。我把它变成了一个函数,现在我想跟踪。我想举个例子,150次后“枪”就会卡壳。我也想追踪出去...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.