如何解决如何将IEnumerable类型转换为List类型?
我正在尝试获取某些数据库值并将它们存储在数据表中。之后,我将linq应用于按帐号对所有数据进行分组。我将最终结果存储在以下类类型的列表中-
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.Collections.Generic.List
在线
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
类更改为ListItem
,并将itemNumbers
属性更改为List<string>
类型。 - 我将所有项目(我不知道您数据库中列的名称)分组到单个
ListItem
实例中,并按accountNumber
列分组,并将所有项目存储在itemNumbers
属性
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。