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
Lepaskan: 2024-12-27 07:19:09
asal
184 orang telah melayarinya

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
Salin selepas log masuk

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()));
Salin selepas log masuk
  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));
Salin selepas log masuk

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);
}
Salin selepas log masuk

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

var selected = table.Where(t => stringArray.Contains(t.uid.ToString()));
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan