【问题标题】:Checking if list item is empty with LINQ at where condition?在 where 条件下使用 LINQ 检查列表项是否为空?
【发布时间】:2011-06-16 21:00:05
【问题描述】:

我的 LINQ 结构有问题?

我将从 Sharepoint 自定义列表中获取所有列表项.. 如下所示

SPList ComponentMaster = Site.Lists[Constants.Lst_CompMaster];

 var products = from SPListItem ci in ComponentMaster .Items
                where ci["Component Name"].ToString().Contains(SearchKey) ||
                      (
                         ( ci["Component Description"] == null &&           
                           !string.IsNullOrEmpty(
                               ci["Component Description"].ToString()
                            )
                       ) ? true:false)  

这里我要检查组件描述是否为null,如果为true返回null/false,否则检查我的SearchKey word是否在描述中?

select new
{
    ProductName = ci["Component Name"].ToString(),
    ID = ci.UniqueId.ToString(),
    ItemID = ci.ID.ToString()                                             
} ;


if( products > 0 )
{
    //do somthing..
}

通过 vadivivelu.B

【问题讨论】:

  • 我会第二点,@user801463 如果您希望人们努力回答您的问题,请花点力气明确您的要求!
  • 现在我们已经更正了您的代码,您的问题是什么?

标签: linq


【解决方案1】:

如果您真的向我们解释出了什么问题,我们可以提供帮助。我确实看到这个陈述过于复杂并且自相矛盾..:

 var products = from SPListItem ci in ComponentMaster .Items
            where ci["Component Name"].ToString().Contains(SearchKey) ||
                  (
                     ( ci["Component Description"] == null &&           
                       !string.IsNullOrEmpty(
                           ci["Component Description"].ToString()
                        )
                   ) ? true:false)  

假设您想要具有名称或描述的项目,它会简化为:

 var products = from SPListItem ci in ComponentMaster .Items
            where ci["Component Name"].ToString().Contains(SearchKey) ||   
                  string.IsNullOrEmpty(ci["Component Description"].ToString())

【讨论】:

    猜你喜欢
    • 2010-09-07
    • 2020-03-04
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2021-12-11
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多