我在这里遇到了一个问题。我正在尝试使用linq将一个列表中的项目与另一个更大的列表中的项目进行比较。
例如:
list 1: 10,15,20
list 2: 10,13,14,15,20,30,45,54,67,87
如果
list 1
中的所有项目都出现在list 2
中,我应该得到TRUE
。所以上面的示例应该返回TRUE
。就像您看到的那样,我无法使用
sequenceEquals
。有什么想法吗?
编辑:
实际上,list2不是列表,而是SQL中的一列,其具有以下值:
<id>673</id><id>698</id><id>735</id><id>1118</id><id>1120</id><id>25353</id>
。在linq中,我根据Jon Skeet的帮助进行了以下查询:
var query = from e in db
where e.taxonomy_parent_id == 722
select e.taxonomy_item_id;
当前,查询是一个 IQueryable
的 long 类型的对象。
var query2 = from e in db
where query.Contains(e.taxonomy_item_id)
where !lsTaxIDstring.Except(e.taxonomy_ids.Replace("<id>", "")
.Replace("</id>", "")
.Split(',').ToList())
.Any()
select e.taxonomy_item_id;
但是现在我遇到了错误:
Local sequence cannot be used in LINQ to SQL implementation of query operators except the Contains() operator
。