Linq 查询,20万条的数据,去除有关第二个数组关键词的记录
这些是代码,
IEnumerable<string> query = null;
                string[] x = null;
                for (int i = 0; i < ImportBrand.Length; i++)
                {
                    if (i == 0)
                    {
                        query = from item in ImportKeywords
                                where (item.Contains(ImportBrand[i]) == false)
                                select item;
                        x = query.ToArray<string>();
                    }
                    else
                    {
                        query = from item in x
                                where (item.Contains(ImportBrand[i]) == false)//遍历是这个地方会                 出现超出索引界限
                                select item;
                        x = null;
                        x = query.ToArray<string>();
                    }
                }
                Console.WriteLine("====>>");
          
                ArrayList al = new ArrayList();
                foreach(string s in query)
                {
                    al.Add(s);
                }
------解决方案--------------------本帖最后由 q107770540 于 2014-02-16 20:33:43 编辑
            你的思路有点乱,else里的query变量的值,每次for循环都会被覆盖掉,之前的查询还有什么意义?
		IEnumerable<string> query = null;
          string[] x = null;
		if(ImportBrand.Length>0)
		{
			x =     (from item in ImportKeywords
                                where !item.Contains(ImportBrand[0])
                                select item).ToArray();
             if(x != null)
			{
				query = from item in x
                              		where ImportBrand.Any(a=>!item.Contains(a)) 
                                        select item;