Ozk*_*kan 4 sql linq comparison list
我在这里遇到了问题.我试图使用linq将列表中的项目与另一个列表中的项目进行比较.
例如:
list 1: 10,15,20
list 2: 10,13,14,15,20,30,45,54,67,87
Run Code Online (Sandbox Code Playgroud)
我应该得到TRUE,如果在所有项目list 1出现list 2.所以上面的例子应该返回TRUE
就像你可以看到我无法使用 sequenceEquals
有任何想法吗?
编辑:
list2实际上不是一个列表,它是sql中的列,具有以下值:
<id>673</id><id>698</id><id>735</id><id>1118</id><id>1120</id><id>25353</id>.
在linq中,由于Jon Skeets的帮助,我做了以下查询:
var query = from e in db
where e.taxonomy_parent_id == 722
select e.taxonomy_item_id;
Run Code Online (Sandbox Code Playgroud)
IQueryable此刻的查询很长
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;
Run Code Online (Sandbox Code Playgroud)
但现在我收到了错误Local sequence cannot be used in LINQ to SQL implementation of query operators except the Contains() operator.
怎么样:
if (!list1.Except(list2).Any())
Run Code Online (Sandbox Code Playgroud)
这是我能想到的最简单的方法.如果需要,您可以显式创建集等:
HashSet<int> set2 = new HashSet<int>(list2);
if (!list1.Any(x => set2.Contains(x)))
Run Code Online (Sandbox Code Playgroud)
但我希望Except无论如何都要实现.
| 归档时间: |
|
| 查看次数: |
1768 次 |
| 最近记录: |