如何忽略LINQ查詢空白元如何忽略LINQ查詢空白元
我有一個LINQ查詢
var usersInDatabase =
from user in licenseUserTable
where user.FirstName == first_name &&
user.LastName == last_name
select user;
但如果我在這裏和FIRST_NAME或姓氏是空白的話,我想仍然評估其他數據項。
如何忽略LINQ查詢空白元如何忽略LINQ查詢空白元
我有一個LINQ查詢
var usersInDatabase =
from user in licenseUserTable
where user.FirstName == first_name &&
user.LastName == last_name
select user;
但如果我在這裏和FIRST_NAME或姓氏是空白的話,我想仍然評估其他數據項。
var usersInDatabase =
from user in licenseUserTable
where
(user.FirstName == first_name || first_name == string.Empty) &&
(user.LastName == last_name || last_name == string.Empty)
select user;
現在你會得到一致給出的第一個名字,如果FIRST_NAME是空的,只要所有將匹配,因爲它也匹配的姓氏,除非姓氏是空白的,以及記錄。現在唯一的問題是,如果first_name和last_name是空白的,你會得到一切。
var usersInDatabase =
from user in licenseUserTable
select user;
if (!string.IsNullOrEmpty(first_name)) {
usersInDatabase = usersInDatabase.Where(u => u.FirstName == first_name);
}
if (!string.IsNullOrEmpty(last_name)) {
usersInDatabase = usersInDatabase.Where(u => u.LastName == last_name);
}
這是單語句式的做法,但我覺得馬克的風格更清潔:
var usersInDatabase =
from user in licenseUserTable
where string.IsNullOrEmpty(first_name) || user.FirstName == first_name
where string.IsNullOrEmpty(last_name) || user.LastName == last_name
select user;
相反FIRST_NAME的==的String.Empty,你也許也使用String.IsNullOrEmpty(FIRST_NAME)。 – 2010-03-23 13:37:14
我打算說,但我不相信string.IsNullOrEmpty在LINQ中有效。它在Entity框架中工作。 – David 2010-03-23 13:39:05