是否可以在此添加另一个 where 子句,还是我需要再做一个 foreach?
foreach (Point point in _Points.Where(x => x.Name == "Test"))
{
}
基本上我想添加的也是 where x.name = "Test"
&& where!x.asset.StartsWith("INV")
你可以把它放在同一个 Where 子句中:
foreach (Point point in _Points.Where(x => x.Name == "Test" && !x.Asset.StartsWith("INV"))
{
您还可以链接 LINQ 运算符
foreach (Point point in _Points
.Where(x => x.Name == "Test")
.Where(x => !x.asset.StartsWith("INV")))
{
}
有时我发现链接起来更易读,Where
而不是&&
在一个表达式中搞乱很多。
另请注意,在这种情况下,良好的换行可以提高可读性。
是的,你可以在这里的另一个地方
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")))
{
}
以上将做的伎俩,但你也可以做
_Points.Where( x => x.Name == "Test" && !x.Asset.StartsWith("INV")).ToList().ForEach(yourmethod());