我在格式化这个问题的标题时遇到了困难.但我认为一个例子会让事情变得更加清晰.
我有以下列表,其中包含可变数量的其他列表,其中包含可变数量的'a'对象.
[
[ a, a, a, a],
[ a, a, a],
[ a, a, a],
[ a, a, a, a],
[ a, a, a],
[ a, a, a, a],
[ a, a, a]
]
Run Code Online (Sandbox Code Playgroud)
其中'a'表示类的实例:
class a {
public int Number { get; set; }
public SomeClass SomeClass { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
基本上我想要的是SomeClass在Number等于1 时创建一个对象列表.
我已经使用foreach循环实现了这一点,但我想使用Linq来实现这一点.
使用foreach循环的伪代码:
List<SomeObject> someObjectsList = new List<SomeObject>();
// list is the list which contains lists of 'a' objects described above in the question
foreach (var listOfAObjects in list)
{
var listThatCompliesWithWhereClause = listOfAObjects.Where(x => x.Number == 1);
foreach (var a in listThatCompliesWithWhereClause)
{
someObjectsList.Add(a.SomeObject);
}
}
// someObjectsList is now filled with what I need
Run Code Online (Sandbox Code Playgroud)
我怎么能用Linq解决这个问题?
此外,欢迎提出更好的标题建议.
tch*_*dze 11
尝试
list.SelectMany(it => it).Where(it => it.Number == 1).Select(it => it.SomeClass)
Run Code Online (Sandbox Code Playgroud)