Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menggunakan Contains() dengan String Array dalam LINQ Queries?

Bagaimana untuk Menggunakan Contains() dengan String Array dalam LINQ Queries?

Susan Sarandon
Susan Sarandonasal
2024-12-27 07:19:09124semak imbas

How to Use Contains() with a String Array in LINQ Queries?

Cara Menggantikan Contains(string) dengan Contains(string[]) dalam LINQ Queries

Dalam LINQ, kaedah Contains() boleh digunakan untuk menyemak sama ada koleksi mengandungi elemen tertentu. Secara lalai, kaedah Contains() mengambil satu parameter rentetan, tetapi bagaimana jika anda perlu membandingkan dengan tatasusunan rentetan?

Soalan:

Saya mempunyai Pertanyaan LINQ yang kelihatan seperti ini:

from xx in table
where xx.uid.ToString().Contains(string[])
select xx

Nilai dalam tatasusunan rentetan[] ialah nombor (mis., 1, 45, 20, 10). Saya ingin menggunakan kaedah Contains() untuk menyemak sama ada sifat xx.uid (iaitu nombor) terdapat dalam tatasusunan. Bagaimanakah saya boleh melakukan ini?

Jawapan:

Untuk membandingkan xx.uid dengan tatasusunan rentetan, anda tidak boleh terus menggunakan kaedah Contains(string). Sebaliknya, anda perlu menukar tatasusunan rentetan[] kepada koleksi yang menyokong kaedah Contains(). Berikut ialah dua pendekatan:

  1. Menggunakan Senarai:

Tukar rentetan[] tatasusunan kepada Senarai dan kemudian gunakan kaedah Contains() pada senarai:

var uids = new List<string>(stringArray);
var selected = table.Where(t => uids.Contains(t.uid.ToString()));
  1. Menggunakan Senarai (jika uid juga merupakan int):

Jika uid juga ialah integer, anda boleh menukar tatasusunan rentetan[] kepada Senarai dan kemudian gunakan kaedah Contains() pada senarai:

var uids = stringArray.Select(int.Parse).ToList();
var selected = table.Where(t => uids.Contains(t.uid));

Kaedah Sambungan (Pilihan):

Anda juga boleh mencipta kaedah sambungan untuk rentetan[ ] taip untuk menyediakan kaedah Contains() yang mengambil hujah rentetan:

public static bool Contains(this string[] arr, string value)
{
    return arr.Any(s => s == value);
}

Dengan kaedah sambungan ini, anda boleh terus menggunakan Mengandungi kaedah() pada tatasusunan rentetan[]:

var selected = table.Where(t => stringArray.Contains(t.uid.ToString()));

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Contains() dengan String Array dalam LINQ Queries?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn