0

これに別の where 句を追加することは可能ですか、それとも別の foreach を作成する必要がありますか?

foreach (Point point in _Points.Where(x => x.Name == "Test"))
{
}

基本的に追加したいのは where x.name = "Test"&& whereです!x.asset.StartsWith("INV")

4

4 に答える 4

8

同じ Where 句に入れるだけです。

foreach (Point point in _Points.Where(x => x.Name == "Test" && !x.Asset.StartsWith("INV"))
{
于 2012-04-10T19:46:23.853 に答える
3

LINQ 演算子をチェーンすることもできます

foreach (Point point in _Points
    .Where(x => x.Name == "Test")
    .Where(x => !x.asset.StartsWith("INV")))
{

}

Where1 つの式の中で多くのことをいじるよりも、連鎖した方が読みやすいと感じることがあります&&

この場合、改行を適切に行うと読みやすさが向上することにも注意してください。

于 2012-04-10T19:49:05.007 に答える
1

はい、ここでもう 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")))
  {

  }
于 2012-04-10T19:48:15.243 に答える
0

上記はトリックを行いますが、あなたも行うことができます

_Points.Where( x => x.Name == "Test" && !x.Asset.StartsWith("INV")).ToList().ForEach(yourmethod());
于 2012-04-10T19:48:05.903 に答える