2016-06-10 62 views
1

我想用StartsWith进行过滤。该值可能为空。如果搜索字符串为空,如何获取所有记录。StartsWith string.empty in linq查询

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可能为空,当它为空时,我想要所有记录。

回答

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); 
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 
} 
+0

'ToList()'将从数据库加载整个表。 –

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

虽然这段代码可能会回答这个问题,但它会从一个解释中受益。 – BDL