Как проверить другой элемент в списке в C #? - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть список (List<string>), назовем его foolist, который будет иметь следующие четыре элемента, описывающих статус: "InProgress", "Queued", "Fail", "Success" и "UpToDate".

Как я могу проверить, относятся ли все элементы в моем списке к одному из этих типов?Если "InProgress", "Queued", "Fail" - какой-либо элемент моего списка, то я бы хотел вернуть тот же элемент.Для этого я просто использую следующее:

if (foolist.Contains("InProgress")) {}

И я делаю это со всеми тремя элементами.Я хотел бы проверить, все ли элементы в моем списке одинаковы.Какой самый эффективный способ сделать это?

Кроме того, я хотел бы проверить, содержит ли мой foolist элементы типа Success и UpToDate.

Спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Вы можете использовать Все

Допустим, доступные типы находятся в списках типов, validFooList и invalidFooList

        List<string> types = new List<string>
        {
            "InProgress", "Queued", "Fail", "Success" , "UpToDate"
        };

        List<string> validFooList = new List<string>
        {
            "InProgress", "Queued", "Fail", "Success" , "UpToDate"
        };


        List<string> invalidFooList= new List<string>
        {
            "InProgress", "Queued", "Fail", "Success" , "UpToDate","dump"
        };

теперь используйте All, чтобы определить, все ли элементы впоследовательность удовлетворяет условию

        bool f = validFooList.All(f => types.Contains(f));// return true

        bool t = invalidFooList.All(f => types.Contains(f)); //return false
0 голосов
/ 24 декабря 2018

Как я могу проверить, относятся ли все элементы в моем списке к одному из этих типов?

Вы можете проверить, все ли состояния одинаковы, с помощью All:

foolist.All(x => x == "InProgress");

и вы можете проверить, если таковые имеются, с помощью Any:

foolist.Any(x => x == "InProgress");

вы даже можете объединить условия при необходимости:

foolist.Any(x => x == "InProgress" || x == "Success");

и т. Д..

Кроме того, я хотел бы проверить, содержит ли мой глупец только элементы типа Success и UpToDate.

, в этом случае foolist.All(item => item == "Success" || items == "UpToDate") должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...