使用Linq(而不是Lambda),我如何检查一个列表是否为空,如果不是,返回该列表中包含的结果,

pkln4tw6  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(175)

我有一个可选参数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假设这一行不存在并给予我所有的结果?
因为它会在后面做一些查询的事情,我不想做太多的修改。

zazmityj

zazmityj1#

您可以使用where userStores.Count == 0 || usersStores.Contains(t.storeId)仅在列表不为空时应用contains条件

相关问题