Linq Count返回结果

Lie*_*oen 1 linq

//Feedback Check
var generalFeedbackQuery = from feedbackElements in xml.Elements("feedback")
                           select new
                           {
                               Feedback = feedbackElements.Element("general").Value,
                               PostiveFeedback = feedbackElements.Element("positive").Value,
                               NegativeFeedback = feedbackElements.Element("negative").Value
                           };

Assert.AreEqual(actual.feedback, generalFeedbackQuery.ElementAt(0).Feedback);
Assert.AreEqual(actual.positiveFeedback, generalFeedbackQuery.ElementAt(0).PostiveFeedback);
Assert.AreEqual(actual.negativeFeedback, generalFeedbackQuery.ElementAt(0).NegativeFeedback);
Run Code Online (Sandbox Code Playgroud)

是否可以检查查询是否返回任何内容?

喜欢

if(generalFeedbackQuery.Count())....
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但如果你在Count上添加一个手表它似乎不存在......

Jon*_*eet 5

查看是否返回任何内容的最佳方法是使用Any().一旦获得任何结果,它将停止并返回true,而不是循环遍历所有结果.

(如果你真的想要计数,那么Count()确实是正确的方法.我的猜测是Watch窗口因为它是一种扩展方法而感到困惑.你可以明确地调用System.Linq.Enumerable.Count(generalFeedbackQuery)它可能有效.)