C# 将 DataGridView 绑定(bind)到 Hashtable

标签 c# datatable hashtable

我想让 C# DataGridView 的 DataSource 成为一个 HashTable,其中有两列:

  • 第一个是关键;
  • 第二个值。

这可能吗?

编辑:请参阅我关于从哈希表设置值/从哈希表获取值的评论。 谢谢!

最佳答案

这里的问题是您无法直接绑定(bind)到HashTable。您需要实现以下功能:IListIListSourceIBindingListIBindingListView。 HashTable 没有实现任何这些接口(interface)。

尝试使用 LINQ 将 HashTable 放入 List 中:

Hashtable ht = new Hashtable();    
ht.Add(1,"foo");
ht.Add(2,"bar");    
dataGridView1.DataSource = ht.Cast<DictionaryEntry>()
                             .Select(x => new { Col1 = x.Key.ToString(), 
                                                Col2 = x.Value.ToString() })
                             .ToList();

请注意,匿名类有 2 个命名属性(为了简洁起见,我使用了 Col1Col2。您的网格必须准确地了解它们:

enter image description here

关于C# 将 DataGridView 绑定(bind)到 Hashtable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6269361/

相关文章:

java - 在 HashMap 中查找第一、第二、第三最小值

data-structures - 哈希表 - 使用二叉搜索树实现

C# 迭代器和指针?

c# - 将 DataTable 转换为 XML 的防更改且最快的方法?

C# dt.Compute() 在某些乘法上不能正常工作

c# - 如何遍历 DataTable 并根据列值获取行组?

c# - 如何在 Windows 10 通用应用程序中将 CalendarDatePicker 中的仅日期值存储到 SQLite 数据库

c# - 如何使 RSACryptoServiceProvider 在没有填充(nopadding)的情况下工作?

c# - TokenStream 在 ANTLR 解析器 C# 实现中不存在

java - 哈希表的线程安全