簡體   English   中英

C#Linq列表與datagrid中的列表

[英]C# Linq list with list in datagrid

我有一個包含字符串屬性的列表和另一個列表。 如何在數據網格中同時顯示字符串屬性和包含列表的屬性?

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 -properties:

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,
        };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM