SORU
12 EKİM 2008, Pazar


Nasıl SERİ kullanırım İçerir(string[]) İçerir(string)yerine

Büyük bir soru var.

Sadece bu gibi görünüyor koymak için seri bir sorgu var:

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

string[] dizi elemanlarını (1,45,20,10,vb...) gibi sayılar olur

.Contains Varsayılan .Contains(string).

Bunun yerine yapmak istiyorum: .Contains(string[])...

DÜZENLEME :Bir kullanıcı string[] uzantısı için bir sınıf yazmak önerdi. Nasıl, ama hiç biri doğru yönde bana gelin istekli öğrenmek istiyorum?

DÜZENLEME :Uid da bir numara olurdu. Bir dize dönüştürülür.

Kimseye yardım?

CEVAP
12 EKİM 2008, Pazar


spoulson neredeyse doğru, ama string[] List<string> Bir ilk oluşturmanız gerekir. List<int> uıd olursa daha iyi olur aslında bir de int. List<T> Contains() destekler. uid.ToString().Contains(string[]) bir dize olarak akışkan bir dize olarak dizinin tüm değerleri içeren anlamına gelir yapıyor??? Eğer uzantı yöntemi yazma eğer olsaydı bile bu anlamda yanlış olur.

[DÜZENLE]

Bu tamamen değişmiş ve Mitch Buğday gösterdiği gibi string[] için yazdığı sürece, o zaman sadece dönüşüm adımı atlamak mümkün olurdu.

[ENDEDİT]

İstediğin şey burada, eğer uzatma yöntemi kullanma durumunda değil zaten değer vermez sadece List<int>() kullanın-o zaman potansiyel kullanıcı topluluğu yoksa). Bu daha temiz olduğunu düşünüyorum sözdizimi, ve zincirleme yöntemi kullanır sorgu daha sağlayıcıları ile kullanılabilir sağlamak için int ' e dönüştürme var.

var uids = arrayofuids.Select(id => int.Parse(id)).ToList();

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • Metheud

    Metheud

    9 EYLÜL 2006
  • The Exploiteers

    The Exploite

    4 Ocak 2011