gpt4 book ai didi

c# - 使用 LINQ 在列表的列表中选择不同的属性

转载 作者:可可西里 更新时间:2023-11-01 08:32:25 30 4
gpt4 key购买 nike

我想使用 LINQ 选择一个唯一的字符串列表,存储为一个对象内的列表。该对象本身存储在另一个对象内的列表中。很难解释,这里是一个例子:

public class Master
{
public List<DataCollection> DateCollection { get; set; }
public Master() { this.DateCollection = new List<DataCollection>(); }
}

public class DataCollection
{
public List<Data> Data { get; set; }
public DataCollection() { this.Data = new List<Data>(); }
}

public class Data
{
public string Value{ get; set; }
public Data() { }
}

使用 Master 类,我想获得 Data 类中唯一值字符串的列表。我尝试了以下方法:

List<string> unique = master.Select(x => x.DataCollection.Select(y => y.Value)).Distinct().ToList();

谁能告诉我这是怎么做到的?

最佳答案

您可以这样做,直接使用公共(public) DateCollection 成员:

var unique = master.DateCollection
.SelectMany(x => x.Data.Select(d => d.Value))
.Distinct()
.ToList();

关键是 SelectMany 以“展平”选择。

关于c# - 使用 LINQ 在列表的列表中选择不同的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679862/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com