2009-04-01 13 views
1
//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); 

Ist es möglich zu überprüfen, ob die Abfrage irgendetwas zurückgegeben hat?Linq Count Zurückgegebene Ergebnisse

Wie

if(generalFeedbackQuery.Count()).... 

Dies scheint zu funktionieren, aber wenn man eine Uhr auf dem Grafen hinzufügen es scheint nicht zu existieren ...

Antwort

5

Die beste Art zu sehen, ob oder nicht etwas wurde zurückgegeben, verwenden Sie Any(). Das wird aufhören und wieder wahr werden, sobald es Ergebnisse bringt, anstatt sie alle zu durchforsten.

(Wenn Sie tatsächlich die Zählung wollen, dann Count() ist in der Tat der richtige Weg zu gehen. Meine Vermutung ist, dass das Watch-Fenster verwechselt wird, indem sie eine Erweiterungsmethode zu sein. Sie explizit System.Linq.Enumerable.Count(generalFeedbackQuery) nennen könnte, die arbeiten können.)