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クラスの一意のValue文字列のリストを取得したいと思います。私は以下を試しました:
List<string> unique = master.Select(x => x.DataCollection.Select(y => y.Value)).Distinct().ToList();
誰かがそれがどのように行われるかを私に見せてもらえますか?
パブリックDateCollection
メンバーを直接使用して、このように行うことができます。
var unique = master.DateCollection
.SelectMany(x => x.Data.Select(d => d.Value))
.Distinct()
.ToList();
重要なのはSelectMany
、選択を「フラット化」することです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加