[英]How to convert IEnumerable type to List type?
我正在嘗試獲取某些數據庫值並將它們存儲在數據表中。 之后,我應用 linq 對所有帶帳號的數據進行分組。 我將最終結果存儲在以下 class 類型的列表中 -
class ListItems
{
public string accountNumbers
{
get;
set;
}
public string itemNumbers
{
get;
set;
}
}
我的代碼是:
List<ListItems> accounts = new List<ListItems>();
public void GetItems(int ID1, int ID2)
{
con = new SqlConnection(connection);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_FetchItems";
cmd.Parameters.AddWithValue("@id1", ID1);
cmd.Parameters.AddWithValue("@id2", ID2);
cmd.Connection = con;
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adp.Fill(dt);
accounts = from result in dt.AsEnumerable()
group result by result.Field<string>("accountNumber");
}
我收到以下錯誤
無法將類型“System.Collections.Generic.IEnumerable<System.Linq.IGrouping<string, System.Data.DataRow>>”隱式轉換為“System.Collections.Generic.List<PricingPractice.ListItems>”
在線的
accounts = from result in dt.AsEnumerable()
group result by result.Field<string>("accountNumber");
我什至嘗試使用 ToList() 轉換此表達式,但它也不起作用。
試試這個:
class ListItem
{
public string accountNumber { get; set; }
public List<string> itemNumbers { get; set; }
}
accounts = (from result in dataTable.AsEnumerable() group result by result.Field<string>("accountNumber") into g select new ListItems { accountNumber = g.Key, itemNumbers = g.Select(x => x.Field<string>("<itemNumber>")).ToList() }).ToList();
解釋如下:
ListItems
class 更改為ListItem
並將itemNumbers
屬性更改為List<string>
類型ListItem
實例,按accountNumber
列分組,並將所有項目存儲在itemNumbers
屬性中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.