如何在C#中检查列表中的其他元素?

时间:2018-12-24 15:36:24

标签: c# list

我有一个列表(List<string>),我们称之为foolist,其中将包含以下四个描述状态的项目: "InProgress""Queued""Fail""Success""UpToDate"

如何检查列表中的所有元素是否都是其中一种?如果"InProgress""Queued""Fail"是列表中的任何元素,那么我想返回相同的元素。为此,我只使用以下内容:

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

我正在使用所有这三个要素。我想检查清单中的所有项目是否都相同。哪种方法最有效?

此外,我想检查我的foolist是否仅包含SuccessUpToDate类型的项目。

谢谢你!

2 个答案:

答案 0 :(得分:1)

您可以使用All

可以说可用的类型在List Types,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

答案 1 :(得分:0)

  

我如何检查列表中的所有元素是否都是其中之一   类型?

您可以通过All检查所有状态是否相同:

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

,您可以通过Any检查是否有

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

如果需要,您甚至可以合并条件:

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

等等...

  

此外,我想检查我的foolist是否仅包含   键入Success和UpToDate。

在这种情况下,foolist.All(item => item == "Success" || items == "UpToDate")就足够了。