LINQ我还是很新.我有以下"简化"数据结构:
List<List<Field>> myData = new List<List<Field>>();
Run Code Online (Sandbox Code Playgroud)
Field由两个字符串成员组成,Type和Name.
我的目标是获得一个List<string>包含Name对应于给定的所有不同的Type.我的第一个方法是:
var test = myData
.Where(a => a.FindAll(b => b.Type.Equals("testType"))
.Select(c => c.Name)
.Distinct());
Run Code Online (Sandbox Code Playgroud)
有人对我有暗示吗?=)
您只需要用来SelectMany展平列表列表,然后照常进行
var test = myData.SelectMany(x => x)
.Where(x => x.Type == "testType")
.Select(x => x.Name)
.Distinct()
.ToList();
Run Code Online (Sandbox Code Playgroud)
或者在查询语法中
var test = (from subList in myData
from item in subList
where item.Type == "testType"
select item.Name).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)