請幫我使用Linq重構此代碼。如何只使用Where和ToList一次? THX求助Linq代碼重構
private IEnumerable<SomeClass> Filter(IEnumerable<SomeClass> aaa, string name, string company, string address,int? age)
{
var ans = new List<SomeClass>();
if (!String.IsNullOrEmpty(name))
ans = aaa.Where(x => x.name.equal(name)).ToList();
if (!String.IsNullOrEmpty(company))
ans = ans.Where(x => x.company.equal(company)).ToList();
if (!String.IsNullOrEmpty(address))
ans = ans.Where(x => x.address.equal(address)).ToList();
if (age.HasValue)
ans = ans.Where(x => x.age == age.Value).ToList();
return ans;
}
您可以在此處使用Expression> exp create以下每個條件。代碼如下:ans = ans.Where(exp)。ToList() –
這是一個奇怪的方法;如果爲'name'提供'null',但爲其他參數提供實際值,'ans'將仍爲空。我懷疑這就是你想要發生的事情。 – Rik