C# Linq 列表,数据网格中的列表
本文关键字:列表 网格 数据网 数据 Linq | 更新日期: 2024-11-07 19:52:52
我有一个包含字符串属性的列表和另一个列表。如何在数据网格中同时显示字符串属性和包含列表中的属性?
public class Main
{
public string Name { get; set; }
public List<Info> Info { get; set; }
}
public class Info
{
public string Info1 { get; set; }
public string Info2 { get; set; }
}
我希望我的数据网格显示如下内容:
#Name #Info1 #Info2
name info1 info2
name info1 info2
提前非常感谢你。
如果可以更改Main
类,静态方法是提供要公开的其他类中的属性的string
-属性:
public class Main
{
public string Name { get; set; }
public List<Info> Info { get; set; }
public string Info1 {
get {
return Info == null || Info.Count == 0 ? ""
: Info.Last().Info1;
}
}
public string Info2
{
get
{
return Info == null || Info.Count == 0 ? ""
: Info.Last().Info2;
}
}
}
其他方法:
- 您可以为此要求使用新类
您可以使用匿名类型:
this.dataGridView1.DataSource = mains .Select(m => new { m.Name, Info1 = m.Info.Last().Info1, Info2 = m.Info.Last().Info2, // add null or count=0 check here }).ToList();
如果要从"信息"列表中获取每个主条目的最后一条记录,可以编写:
var q = from m in mainList
let i = m.Info.LastOrDefault()
select new
{
m.Name,
Info1 = i == null ? null : i.Info1,
Info2 = i == null ? null : i.Info2,
};