【发布时间】:2018-06-27 16:16:52
【问题描述】:
我从外部包裹收到List<DictionaryEntry> list。
我想将它传递给ComboBox.Items.AddRange(),这需要object[]
我试过了:
comboBox.Items.AddRange(list.ToArray());
comboBox.Items.AddRange((object[])(list.ToArray()));
但 C# VS2013 编译器失败。
以下基于ComboBox.Items.Add() 的代码可以完美运行,无需将DictionaryEntry 显式转换为对象。
foreach (DictionaryEntry item in list)
comboBox.Items.Add(item);
由于其他原因,我不想使用可以分配List<DictionaryEntry> list 的combobox.DataSource 属性。
有没有什么简单的方法可以将List<DictionaryEntry>列表转换成object[]?
【问题讨论】:
-
您确定转换为
object[]会导致开销吗?这可能是微优化。您应该运行测试,看看它是否真的有那么大的交易,我认为不会,铸造不是一项昂贵的操作。更昂贵的是装箱/拆箱。 -
@AustinWBryan 我的意思是开销解决方案,例如我的代码中的 foreach 示例或从 List 编写派生类。
标签: c# data-binding combobox