我有这个:
vehicles = vehicles.Where(x => x.ModelUrl == filter.ModelUrl);
这很好,但是我没有传递一个字符串(作为filter.ModelUrl),而是传递一个List,查询应该返回所有结果,其中x.ModelUrl是列表中的任何项目。
我该怎么做?
由于
答案 0 :(得分:2)
vehicles = vehicles.Where(x => OtherList.Contains(x.ModelUrl));
或
vehicles = vehicles.Where(x => OtherList.Any(ol => ol.ModelUrl == x.ModelUrl));
答案 1 :(得分:1)
vehicles = vehicles.Where(x => list.Contains(x.ModelUrl));
答案 2 :(得分:0)
欢迎
vehicles = vehicles.Where(x => list.Contains(x.ModelUrl));
答案 3 :(得分:0)
Where
/ Contains
方法的替代方法是使用Join
:
vehicles = vehicles.Join(yourListOfUrls,
vec => vec.ModelUrl,
url => url,
(vev, url) => vec);
或
vehicles = from vec in vehicles
join url in yourListOfUrls on vec.ModelUrl Equals url
select vec
对于更大的列表更快。
答案 4 :(得分:-1)
也许你应该只使用方法Contains:
var vehicles = vehicles.Where(x => filter.Contains(x.ModelUrl));
答案 5 :(得分:-1)
vehicles = vehicles.Where(x => list.Contains(x.ModelUrl));