2016-06-10 40 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