我有一个可选参数UserId。如果传入UserId,我将获得与该用户相关的商店列表。如果UserId为“",我将获得每个商店。
public void Example(userId = ""){
var usersStores = new List<short>();
if(userId != "")
userStores = GetStores(userId);
var query = from t in _dbContext.FakeTable
where usersStores.Contains(t.storeId)
select new ExampleObject
{
id = t.storeId,
text = t.storeId + " (" + t.storeCity + ")"
};
}
所以我有
where usersStores.Contains(p.storeId)
有没有办法在同一个查询中执行If usersStore.Count〉0 then userStores.contain(p.storeId)else假设这一行不存在并给予我所有的结果?
因为它会在后面做一些查询的事情,我不想做太多的修改。
1条答案
按热度按时间zazmityj1#
您可以使用
where userStores.Count == 0 || usersStores.Contains(t.storeId)
仅在列表不为空时应用contains
条件