1
是否有更好的簡化書寫這個查詢的方法。我的邏輯是 如果集合包含客戶ID和國家代碼,請按客戶ID升序進行查詢。如果CustID中沒有包含id,則按客戶名稱進行訂單。有沒有更好的方法來編寫這個查詢?我並不熟悉複雜的lambda表達式。有沒有更好的方式來編寫這個LINQ查詢?
var custIdResult = (from Customer c in CustomerCollection
where (c.CustomerID.ToLower().Contains(param.ToLower()) &&
(countryCodeFilters.Any(item => item.Equals(c.CountryCode))))
select c).ToList();
if (custIdResult.Count > 0)
{
return from Customer c in custIdResult
where (c.CustomerName.ToLower().Contains(param.ToLower()) &&
countryCodeFilters.Any(item => item.Equals(c.CountryCode)))
orderby c.CustomerID ascending
select c;
}
else
{
return from Customer c in CustomerCollection
where (c.CustomerName.ToLower().Contains(param.ToLower()) &&
countryCodeFilters.Any(item => item.Equals(c.CountryCode)))
orderby c.CustomerName descending
select c;
}
我的大腦冷凍,應該想到這種方式:)優秀。非常感謝。 – Spock 2010-05-24 21:55:47