Enumerable.Contains Yöntem

Tanım

Bir dizinin belirtilen öğeyi içerip içermediğini belirler.

Aşırı Yüklemeler

Contains<TSource>(IEnumerable<TSource>, TSource)

Varsayılan eşitlik karşılaştırıcısını kullanarak bir dizinin belirtilen öğeyi içerip içermediğini belirler.

Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>)

Belirtilen öğesini kullanarak IEqualityComparer<T>bir dizinin belirtilen öğeyi içerip içermediğini belirler.

Contains<TSource>(IEnumerable<TSource>, TSource)

Kaynak:
Contains.cs
Kaynak:
Contains.cs
Kaynak:
Contains.cs

Varsayılan eşitlik karşılaştırıcısını kullanarak bir dizinin belirtilen öğeyi içerip içermediğini belirler.

C#
public static bool Contains<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource value);

Tür Parametreleri

TSource

öğelerinin sourcetürü.

Parametreler

source
IEnumerable<TSource>

Bir değerin bulunacak bir dizi.

value
TSource

Dizide bulunacak değer.

Döndürülenler

true kaynak dizisi belirtilen değere sahip bir öğe içeriyorsa; aksi takdirde , false.

Özel durumlar

source, null değeridir.

Örnekler

Aşağıdaki kod örneği, bir dizinin belirli bir öğe içerip içermediğini belirlemek için nasıl kullanılacağını Contains<TSource>(IEnumerable<TSource>, TSource) gösterir.

C#
string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" };

string fruit = "mango";

bool hasMango = fruits.Contains(fruit);

Console.WriteLine(
    "The array {0} contain '{1}'.",
    hasMango ? "does" : "does not",
    fruit);

// This code produces the following output:
//
// The array does contain 'mango'.

Açıklamalar

türü source uygularsa ICollection<T>, Contains sonucu elde etmek için bu uygulamadaki yöntemi çağrılır. Aksi takdirde, bu yöntem belirtilen öğeyi içerip içermediğini source belirler.

Eşleşen bir öğe bulunur bulunmaz numaralandırma sonlandırılır.

Öğeler, varsayılan eşitlik karşılaştırıcısı kullanılarak belirtilen değerle karşılaştırılır Default.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>)

Kaynak:
Contains.cs
Kaynak:
Contains.cs
Kaynak:
Contains.cs

Belirtilen öğesini kullanarak IEqualityComparer<T>bir dizinin belirtilen öğeyi içerip içermediğini belirler.

C#
public static bool Contains<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource value, System.Collections.Generic.IEqualityComparer<TSource> comparer);
C#
public static bool Contains<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource value, System.Collections.Generic.IEqualityComparer<TSource>? comparer);

Tür Parametreleri

TSource

öğelerinin sourcetürü.

Parametreler

source
IEnumerable<TSource>

Bir değerin bulunacak bir dizi.

value
TSource

Dizide bulunacak değer.

comparer
IEqualityComparer<TSource>

Değerleri karşılaştırmak için bir eşitlik karşılaştırıcısı.

Döndürülenler

true kaynak dizisi belirtilen değere sahip bir öğe içeriyorsa; aksi takdirde , false.

Özel durumlar

source, null değeridir.

Örnekler

Aşağıdaki örnekte yönteminde kullanılabilecek bir eşitlik karşılaştırıcısının nasıl uygulanacağı gösterilmektedir Contains .

C#
public class Product
{
    public string Name { get; set; }
    public int Code { get; set; }
}

// Custom comparer for the Product class
class ProductComparer : IEqualityComparer<Product>
{
    // Products are equal if their names and product numbers are equal.
    public bool Equals(Product x, Product y)
    {

        //Check whether the compared objects reference the same data.
        if (Object.ReferenceEquals(x, y)) return true;

        //Check whether any of the compared objects is null.
        if (Object.ReferenceEquals(x, null) || Object.ReferenceEquals(y, null))
            return false;

        //Check whether the products' properties are equal.
        return x.Code == y.Code && x.Name == y.Name;
    }

    // If Equals() returns true for a pair of objects
    // then GetHashCode() must return the same value for these objects.

    public int GetHashCode(Product product)
    {
        //Check whether the object is null
        if (Object.ReferenceEquals(product, null)) return 0;

        //Get hash code for the Name field if it is not null.
        int hashProductName = product.Name == null ? 0 : product.Name.GetHashCode();

        //Get hash code for the Code field.
        int hashProductCode = product.Code.GetHashCode();

        //Calculate the hash code for the product.
        return hashProductName ^ hashProductCode;
    }
}

Bu karşılaştırıcıyı uyguladıktan sonra, aşağıdaki örnekte gösterildiği gibi yönteminde Contains bir nesne dizisi Product kullanabilirsiniz:

C#
Product[] fruits = { new Product { Name = "apple", Code = 9 },
                       new Product { Name = "orange", Code = 4 },
                       new Product { Name = "lemon", Code = 12 } };

Product apple = new Product { Name = "apple", Code = 9 };
Product kiwi = new Product { Name = "kiwi", Code = 8 };

ProductComparer prodc = new ProductComparer();

bool hasApple = fruits.Contains(apple, prodc);
bool hasKiwi = fruits.Contains(kiwi, prodc);

Console.WriteLine("Apple? " + hasApple);
Console.WriteLine("Kiwi? " + hasKiwi);

/*
    This code produces the following output:

    Apple? True
    Kiwi? False
*/

Açıklamalar

Eşleşen bir öğe bulunur bulunmaz numaralandırma sonlandırılır.

ise comparernull, Defaultöğeleri belirtilen değerle karşılaştırmak için varsayılan eşitlik karşılaştırıcısı kullanılır.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0