2011-05-19 15 views
6

Bir veritabanından kayıtları içe aktaran bir ArrayList sahibim. arrayList'in bir api olan başka bir listeyle eşleştirmek istediğiniz şema içerip içermediğini kontrol etmek için herhangi bir yöntem var mı?Belirli bir dizeyi içeren dizi listesini denetleme yöntemi

List<PrimaryClass> primaryList = new List<PrimaryClass>(e.Result); 
PrimaryClass sc = new PrimaryClass(); 
foreach (string item in str) 
{ 
    for (int a = 0; a <= e.Result.Count - 1; a++) 
    { 
     string schname = e.Result.ElementAt(a).PrimarySchool; 
     string tophonour = e.Result.ElementAt(a).TopHonour; 
     string cca = e.Result.ElementAt(a).Cca; 
     string topstudent = e.Result.ElementAt(a).TopStudent; 
     string topaggregate = e.Result.ElementAt(a).TopAggregate; 
     string topimage = e.Result.ElementAt(a).TopImage;   
     if (item.Contains(schname)) 
     { 
     } 
    } 
} 

Şimdiye kadar yaptığım şey budur, işlediğim hataları düzeltin. Teşekkürler.

+4

* Aslında * bir "List " Listeniz var - Silverlight ise - bunun nongenerik koleksiyonları desteklemediğini düşündüm. Lütfen listenizdeki * gerçek * veri türü ile birlikte bunu netleştirmek için sorunuzu düzenleyin. –

+0

Kaliteli yanıtlar istiyorsanız, daha fazla bilgi ve kod örneği eklemelisiniz. –

+0

Genel koleksiyonunu kullanın (2011 ve yarısı şimdi!) Ve çok yardımcı olacaktır – abatishchev

cevap

5

o LINQ ile kolay olmalı, şimdi aslında List<T> olduğunu gösterdin, bu

foreach(string row in arrayList){ 
    if(row.contains(searchString)){ 
     //put your code here. 
    } 
} 
2
// check all types 
var containsAnyMatch = arrayList.Cast<object>().Any(arg => arg.ToString() == searchText); 

// check strings only 
var containsStringMatch = arrayList.OfType<string>().Any(arg => arg == searchText); 
+0

Silvelight böyle bir LINQ'yu tam olarak destekliyor mu? – abatishchev

+0

@abatishchev - evet –

4

Tamam deneyin: Eğer gerçekten kullanmayı düşünmelisiniz

if (primaryList.Any(x => item.Contains(x.PrimarySchool)) 

Not foreach, bir liste üzerinde yineleme yapmak yerine, kesinlikle endeksine ihtiyaç duymadıkça ve ... dizinleyiciyi kullanan bir liste, ElementAt'u çağırmaktan daha kolaydır.

+0

yaparsa, bu şemaya şema koyardınız, eğer bu alanı kullanmak istediğim alan – GJJ

+0

@ GJJ: Gördüğüm kadarıyla, 'şname' 'PrimaryClass'ın bir özelliği değil ... ... 'PrimarySchool' özelliğindeki * yerel değişken * (alan değil) 'şemasını başlatıyordunuz, bu yüzden onu kullandım. –

İlgili konular