C# linq查询中的StartsWith string.empty

C# linq查询中的StartsWith string.empty,c#,linq,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... } 这里,\u列表将用于前面的代码中s_Search

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

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

这里,
\u列表
将用于前面的代码中
s_SearchString
可能为空,当它为空时,我需要所有记录。

只要在
SearchString
参数有值时应用该条件即可:

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

虽然这段代码可能会回答这个问题,但它会从解释中受益。
ToList()
将从数据库加载整个表。
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
}
if(!String.IsNullOrEmpty(a_SearchString))
{
  database.TableNames=database.TableNames.Where(e=>e.Name.StartsWith(s_SearchString))  
}
//other code;