2011-05-19 11 views
6

Tengo una ArrayList que importa registros de una base de datos. ¿Hay algún método para verificar si arrayList contiene schname que quiero unir a otra lista que es una API?Método para verificar la lista de arreglos que contiene la serie específica

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)) 
     { 
     } 
    } 
} 

Esto es lo que he encontrado hasta ahora, amablemente corrija cualquier error que pueda haber cometido. Gracias.

+4

Espero que * realmente * tenga una 'Lista ' si es Silverlight - Pensé que no era compatible con colecciones no genéricas. Edite su pregunta para dejar esto en claro, junto con el tipo * real * de datos en la lista. –

+0

Realmente debería agregar más información y una muestra de código si desea respuestas de calidad. –

+0

Usa la colección genérica (¡es 2011 y la otra mitad ahora!) Y te ayudará mucho – abatishchev

Respuesta

5

Prueba este

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 es totalmente compatible con tales LINQ? – abatishchev

+0

@abatishchev - sí, lo hace –

4

Bien, ahora que has demostrado que en realidad es un List<T>, debería ser fácil con LINQ:

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

Nota que realmente debería considerar el uso foreach en lugar de un bucle for para iterar sobre una lista, a menos que definitivamente necesite el índice ... y si está tratando con una lista, usando el indexador es más simple que llamar al ElementAt.

+0

donde pondrías el schname en esto si ese es el campo que me gustaría usar – GJJ

+0

@GJJ: Por lo que puedo ver, 'schname' no es una propiedad de' PrimaryClass' tipo ... estabas inicializando * la variable local * (no el campo) 'schname' de la propiedad' PrimarySchool', que es la razón por la que utilicé eso. –

Cuestiones relacionadas