具有自定义列表的 LINQ 中的对象
本文关键字:LINQ 对象 列表 自定义 | 更新日期: 2023-09-27 18:36:38
我正在阐述这个问题:从 LINQ 创建对象
我不得不将联系人列表从列表更改为包含姓名和 ID 的列表。
public class DataItem
{
public String Location { get; set; }
public List<ContactInfo> ContactsList { get; set; }
}
public class ContactInfo
{
public String PersonName { get; set; }
public Int32 PersonId { get; set; }
}
var myData= from table in sqlResults.AsEnumerable()
group table by table["LOCATION"] into groupby
select new DataItem
{
Location = groupby.Key.ToString(),
ContactsList = groupby.Select(row => new ContactInfo
{
PersonName = row["PERSON"].ToString(),
PersonId = (Int32)row["PERSONID"]
}).ToList()
};
//TreeView
tv.DataContext = BrokerData;
我得到的指定转换无效
我在这里做错了什么?
更新
我在这里收到一个突出显示的错误:
new ContactInfo
{
PersonName = row["PERSON"].ToString(),
PerrsonId = (Int32)row["PERSONID"]
}).
而不是弱类型索引器
PersonId = (Int32)row["PERSONID"]
使用强类型Field
扩展方法
PersonId = row.Field<Int32>("PERSONID")
如果PERSONID
可以为 null,并且您希望在这种情况下存储null
,请将 PersonId 设置为空:
public Int32? PersonId { get; set; }
和
PersonId = row.Field<Int32?>("PERSONID")