是否可以在此添加另一个where子句,或者我是否需要再制作另一个foreach?
foreach (Point point in _Points.Where(x => x.Name == "Test"))
{
}
基本上我要添加的内容还有x.name = "Test"
&&其中!x.asset.StartsWith("INV")
答案 0 :(得分:8)
您可以将它放在相同的Where子句中:
foreach (Point point in _Points.Where(x => x.Name == "Test" && !x.Asset.StartsWith("INV"))
{
答案 1 :(得分:3)
您也可以链接LINQ运算符
foreach (Point point in _Points
.Where(x => x.Name == "Test")
.Where(x => !x.asset.StartsWith("INV")))
{
}
有时我觉得与Where
链接更具可读性,而不是在一个表达式中混淆大量&&
。
另请注意,在这种情况下,良好的换行提高了可读性。
答案 2 :(得分:1)
是的,你可以在这里再一次
foreach (Point point in _Points.Where(x => x.Name == "Test")
.Where(x=>!x.asset.StartsWith("INV")))
{
}
或更好去
foreach (Point point in _Points.Where(x => x.Name == "Test" && !x.asset.StartsWith("INV")))
{
}
答案 3 :(得分:0)
以上都可以做到,但你也可以做到
_Points.Where( x => x.Name == "Test" && !x.Asset.StartsWith("INV")).ToList().ForEach(yourmethod());