I'm trying to use Linq to push DataColumn values into a ListControl. My Linq code is as follows:
ddl_listControl.Items.AddRange(
From dr As DataRow In ds.Tables(0).Row Select New ListItem(
dr.Item("Value").ToString(),
dr.Item("ID").ToString()
)
)
Unable to cast object of type 'WhereSelectEnumerableIterator`2[System.Object,System.Web.UI.WebControls.ListItem]' to type 'System.Web.UI.WebControls.ListItem[]'.
Can anyone please advise on how to correct the Linq?
Answer
Based on Tim's input, I used:
ddl_regionSelected.Items.AddRange((From dr As DataRow In ds.Tables(0).Rows Select New ListItem(dr.Item("regionName").ToString(), dr.Item("ID").ToString())).ToArray())
Or for those who love C# styling so much...(!)
ddl_regionSelected.Items.AddRange((From dr As DataRow In ds.Tables(0).Rows
Select New ListItem(
dr.Item("regionName").ToString(),
dr.Item("ID").ToString())
).ToArray())
The part I missed was to wrap the whole Linq statement in braces, then cast to result .ToArray()