在linq查询

时间:2016-06-10 12:35:09

标签: c# linq

我想使用StartsWith进行过滤。该值可能为空。如果搜索字符串为空,如何获取所有记录。

public void UserFunction (string s_SearchString)
{
    var _List = database.TableName(from c in database.TableNames where c.Name.StartsWith(s_SearchString));
    // other code...
}

此处,_List将在前面的代码中使用。 s_SearchString可能为空,当它为空时,我想要所有记录。

3 个答案:

答案 0 :(得分:2)

只需应用条件SearchString参数的值为:

var query=database.TableNames;
if(!String.IsNullOrEmpty(a_SearchString))
{
  query=query.Where(e=>e.Name.StartsWith(s_SearchString))  
}
var _List = database.TableName(query);

答案 1 :(得分:0)

var db = database.TableName.ToList()
if(!String.IsNullOrWhiteSpace(s_SearchString)) // can also use string method String.IsNullOrEmpty.. your preference
{
    return db.Where(x => x.Name.StartsWith(s_SearchString)).ToList(); // using lambda expression
}
else
{
    return db;  // s_SearchString is Null or White Space so return all records
}

答案 2 :(得分:0)

if(!String.IsNullOrEmpty(a_SearchString))
{
  database.TableNames=database.TableNames.Where(e=>e.Name.StartsWith(s_SearchString))  
}
//other code;