###### tags: `學習記錄` `C#` # DataGridView.DataSource 結構 在使用 C# WinForm 的 DataGridView 時發現沒辦法直接把 HashSet 直接餵給它 :shark: ```csharp= DataGridView.DataSource = new HashSet<T>(); // 編譯失敗 ``` 需要多加上 ToArray() 或是 ToList() 才能夠成功 ```csharp= DataGridView.DataSource = new HashSet<T>().ToArray(); // 編譯成功 ``` 原因在於 DataGridView 類別可吃的資料結構 [DataGridView.DataSource 官方文件](https://docs.microsoft.com/zh-tw/dotnet/api/system.windows.forms.datagridview.datasource?view=netframework-4.8) DataGridView 類別支援標準 Windows Forms 資料系結模型。 這表示資料來源可以是任何實作為下列其中一個介面的類型: * <font color="#03b270">IList</font> 介面,包括一維陣列。 * <font color="#03b270">IListSource</font> 介面,例如 DataTable 和 DataSet 類別。 * <font color="#03b270">IBindingList</font> 介面,例如 BindingList<T> 類別。 * <font color="#03b270">IBindingListView</font> 介面,例如 BindingSource 類別。 IList 實作: ICollection IEnumerable HashSet<T> 實作: ICollection<T> IEnumerable<T> IEnumerable :::warning 故 HashSet<T>,不可直接匯入 DataGridView.DataSource :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up