【问题标题】:How to select list of objects inside another list of objects如何在另一个对象列表中选择对象列表
【发布时间】:2023-03-18 00:28:01
【问题描述】:
public class Account
{
    public List<Memo1> Memos { get; set; }
}

public class Memo1
{
    public string Memo { get; set; }
    public DateTime AddDate { get; set; }
    public string UserID { get; set; }
    public List<MemoRefferances1> MemoRefferances { get; set; }
}

public class MemoRefferances1
{
    public string RefferanceName { get; set; }
    public string RefferanceValue { get; set; }
}

我想在 MemoRefferances1 类中选择 RefferanceName 和 RefferanceValue 的值。请帮帮我。

【问题讨论】:

  • 这能回答你的问题吗? Linq: List of lists to a long list
  • MemoRefferances1 类中有哪些可用的属性。只有您提到的两个或其他问题,因为SelectMany 为您提供了IEnumerable&lt;MemoRefferances1&gt; 类的整个对象,如果您需要该对象的选择性属性,那么您还需要Select()

标签: c# linq select linq-to-objects


【解决方案1】:

你可以使用SelectMany获取Account.Memos中的所有MemoRefferances1

var results = someAccount.Memos.SelectMany(x => MemoRefferances);

【讨论】:

    【解决方案2】:

    你需要SelectMany

    将序列的每个元素投影到 IEnumerable 并展平 将生成的序列合并为一个序列。

    var allMemoRefferances = account.Memos.SelectMany(x = x.MemoRefferances);
    

    【讨论】:

      【解决方案3】:

      你可以使用下面的代码,

      Account dummy = GetAccouns(); //Assume GetAccounts fills account data
      var result = dummy.Memos.SelectMany(x => x.MemoRefferances).ToList();
      

      【讨论】: