在列表中创建一个子列表,仅用于一列
create a sublist in list, for only one column
我有两条 sql 条不同地址的记录,我试图通过使用子列表将其作为一条记录
public class spproperty
{
public string Name{ get; set; }
public string Addr{ get; set; }
public int ID{ get; set; }
}
List<spproperty> lst = new List<spproperty>();
lst = db.sp_getDetails(inputParameter).ToList();//gets result from stored procedure as in example
示例:
Name Addr ID
John Florida 234
John Arizona 234
列表
中json的预期输出
[
{
"Name": "John",
"Addresses" : {
"Addr" : "Florida",
"Addr" : "Arizona"
},
"ID": 234,
}
]
我尝试在 xelement 中使用它工作的数据集,任何关于列表的建议
您可以按名称和 ID 分组,然后使用 linq 制作所需的格式化列表。我认为以下代码适用于您的场景:
var desiredList = lst.GroupBy(x => new { Name = x.Name, ID = x.ID })
.Select(x => new
{
Name = x.FirstOrDefault().Name,
Addresses = x.Select(y => y.Addr).ToList(),
ID = x.FirstOrDefault().ID
}).ToList();
之后,如果需要,您可以将结果转换为 Json。
我有两条 sql 条不同地址的记录,我试图通过使用子列表将其作为一条记录
public class spproperty
{
public string Name{ get; set; }
public string Addr{ get; set; }
public int ID{ get; set; }
}
List<spproperty> lst = new List<spproperty>();
lst = db.sp_getDetails(inputParameter).ToList();//gets result from stored procedure as in example
示例:
Name Addr ID
John Florida 234
John Arizona 234
列表
中json的预期输出[
{
"Name": "John",
"Addresses" : {
"Addr" : "Florida",
"Addr" : "Arizona"
},
"ID": 234,
}
]
我尝试在 xelement 中使用它工作的数据集,任何关于列表的建议
您可以按名称和 ID 分组,然后使用 linq 制作所需的格式化列表。我认为以下代码适用于您的场景:
var desiredList = lst.GroupBy(x => new { Name = x.Name, ID = x.ID })
.Select(x => new
{
Name = x.FirstOrDefault().Name,
Addresses = x.Select(y => y.Addr).ToList(),
ID = x.FirstOrDefault().ID
}).ToList();
之后,如果需要,您可以将结果转换为 Json。