簡體   English   中英

檢查數組列表是否包含 c# 中的數組

[英]check if a list of array contains an array in c#

我在 c# 工作,我有一個 integer arrays 的列表和一個數組。 我需要檢查列表是否包含該特定數組。 list.Contains(T item) 方法沒有提供想要的 output,所以我寫了一個自定義方法

static bool CheckContains( List<int[]> forbiddenChoice, int[] finalChoice)
    {
        for (int i = 0; i < forbiddenChoice.Count; i++)
        {
            if(Array.Equals(forbiddenChoice[i], finalChoice))
            {
                return true;
            }
        }
        return false;
    }

盡管如此,即使我傳遞了一個包含在列表中的數組,此方法也始終返回 false。 如何解決這個問題?

使用System.LinqSequenceEqual方法

static bool CheckContains(List<int[]> forbiddenChoice, int[] finalChoice)
{
    for (int i = 0; i < forbiddenChoice.Count; i++)
    {
        if (forbiddenChoice[i].SequenceEqual(finalChoice))
        {
            return true;
        }
    }
    return false;
}

您可以使用Enumerable.SequenceEqual

if (forbiddenChoice[i].SequenceEqual( finalChoice))
{
    return true;
}

Array.IsEqual 將返回 true,只要兩個變量都引用相同的 object:

int[] array1 = { 1, 4, 5 };
int[] array5 = { 1, 4, 5 };
bool test02 = array5.Equals(array1); // returns False
array5 = array1;
test02 = array5.Equals(array1); // returns True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM