检查包含特定字符串的数组列表的方法

时间:2011-05-19 06:33:49

标签: c# silverlight

我有一个从数据库导入记录的ArrayList。 是否有任何方法来检查arrayList是否包含我要匹配的另一个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 个答案:

答案 0 :(得分:9)

ArrayList.Contains怎么样?

答案 1 :(得分:6)

试试这个

foreach( string row in arrayList){
    if(row.contains(searchString)){
       //put your code here.
    }
}

答案 2 :(得分:4)

好的,现在你已经证明它实际上是List<T>,LINQ应该很容易:

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

请注意,您应该考虑使用foreach而不是for循环来迭代列表,除非您肯定需要索引...并且如果您正在处理list,使用索引器比调用ElementAt更简单。

答案 3 :(得分: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);