1

OnHomePage私はブール値であるプロパティを持っています。

結果がlinqクエリから返されるかどうかに基づいて、この値を設定しようとしています。明らかに、クエリの結果がnullかどうか、または値を保持しているかどうかを判断するための外部メソッドを作成できますが、1行で実行するためのより良い方法があることを望んでいます。

現状の私の現在のコード行は次のとおりです。

OnHomePage = im.PageImages.Select(p => p.ImageId == im.Id 
                                      && p.Page.PageName == "/Home")
4

4 に答える 4

4

Any Extensionメソッドを使用して、クエリで結果が得られるかどうかを判断できます。

OnHomePage = im.PageImages.Any(p => p.ImageId == im.Id 
                                   && p.Page.PageName == "/Home");
于 2012-05-01T13:55:51.887 に答える
3

クエリを.Any次のようにまとめるだけです。

OnHomePage = im.PageImages.Where(p => p.ImageId == im.Id 
                                  && p.Page.PageName == "/Home")
                          .Any();

または、Anyそもそも他のオーバーロードを直接使用します。

OnHomePage = im.PageImages.Any(p => p.ImageId == im.Id 
                                  && p.Page.PageName == "/Home");
于 2012-05-01T13:55:51.337 に答える
2
OnHomePage = im.PageImages.Where(p => p.ImageId == 
  im.Id && p.Page.PageName == "/Home").Any();
于 2012-05-01T13:55:58.297 に答える
0

他のユーザーが言ったようにあなたは使うことができますAny()

OnHomePage = im.PageImages.Any(p => p.ImageId == im.Id 
                                      && p.Page.PageName == "/Home");

または別の解決策を使用することができますExists()

OnHomePage = im.PageImages.ToList().Exists(p => p.ImageId == im.Id 
                                          && p.Page.PageName == "/Home");

ここに違いを説明する興味深い答えがあります。

PS:

動作では、これらは同じです。

于 2012-05-01T14:11:14.047 に答える