Как определить, если список содержит все объекты

Обновить

April 2019

Просмотры

56 раз

-1

Простой IF заявление я не в состоянии получить обрабатывать по какой-то причине. получено следующее сообщение об ошибке:

Оператор ==не может применяться к операндам типа List<Status>и bool.

Мне просто нужно знать , если утверждение выше statusCollectionявляется trueто обработать вызов остального. Тем не менее довольно новый для C # и .NET , так что я учусь.

ожидаемый результат

Если какие - либо результаты будут найдены , statusCollection = statusCollection.Whereто запустить заявление , если ничего не найдено продолжает утешать выход.

public static void Main(string[] args)
{
    using (var webClient = new WebClient())
    {
        String rawJSON = webClient.DownloadString("https://status.cloud.google.com/incidents.json");
        List<Status> statusCollection = JsonConvert.DeserializeObject<List<Status>>(rawJSON);
        Console.WriteLine(statusCollection + "\n\nLast Run: " + DateTime.Now.ToString("MM/dd/yyyy h:mm tt\n"));

        statusCollection = statusCollection.Where(r => r.Service_key == "cloud-networking" && r.Begin > DateTime.Now.AddHours(-24)).ToList();

        if (statusCollection == true) {

            var client = new RestClient("http://1.0.0.111:80/restapi/call");
            var request = new RestRequest(Method.POST);
            request.AddHeader("Postman-Token", "");
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("Content-Type", "text/xml");
            request.AddParameter("undefined", "@\"\n<event>\n    " +
                "<title>GCP Networking Status</title>\n    " +
                "<description>Google Cloud Platform Newtwork Status</description>\n    " +
                "<application></application>\n    " +
                "<state>Open</state>\n    " +
                "<sub_category></sub_category>\n    " +
                "<hint></hint>\n    " +
                "</related_hints>\n</event>\"@", ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
        }

        Console.WriteLine(string.Join("\n", statusCollection.Select(s => string.Format("{0} {1} ({2}) {3} - {4} - {5} updates",
                                               s.Begin, s.Number, s.Severity, s.Service_name, s.External_desc, s.Updates.Count))));

        log.Info(DateTime.Now.ToString("MM/dd/yyyy h:mm tt"));
    }
}

1 ответы

5

You are comparing a list with a bool. If you want to check whether the collection has any items or not then use:

if (statusCollection.Any())

Instead of:

if (statusCollection == true)
rad

Связанные вопросы