2011-05-19 2 views
6

У меня есть ArrayList, который импортирует записи из базы данных. Есть ли способ проверить, содержит ли массивList schname, который я хочу сопоставить с другим списком, который является api?Метод проверки списка массивов, содержащий определенную строку

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

Это то, к чему я придумал, любезно исправлю любые ошибки, которые я мог совершить. Благодарю.

+4

Я бы ожидал, что вы * на самом деле имеете «Список ', если это Silverlight - я думал, что не поддерживает коллективные коллекции. Измените свой вопрос, чтобы сделать это ясно, вместе с * фактическим * типом данных в списке. –

+0

Вы действительно должны добавить дополнительную информацию и образец кода, если хотите получить качественные ответы. –

+0

Используйте общую коллекцию (это уже 2011 год и половина сейчас!), И это вам очень поможет – abatishchev

ответ

5

Попробуйте

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 такой LINQ? – abatishchev

+0

@abatishchev - да, это –

4

Хорошо, теперь вы показали, что это на самом деле List<T>, это должно быть легко с помощью LINQ:

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

Обратите внимание, что вы действительно должны рассмотреть возможность использования foreach вместо цикла for для перебора по списку, если вы не определенно нужен индекс ... и если вы имеете дело с список с использованием индексатора проще, чем вызов ElementAt.

+0

где бы вы поместили schname в это, если это поле, которое я бы хотел использовать – GJJ

+0

@GJJ: Насколько я вижу, 'schname' не является свойством' PrimaryClass' type ... вы инициализировали * локальную переменную * (не поле) 'schname' из свойства' PrimarySchool', поэтому я и использовал это. –

Смежные вопросы