linq技術在以下情況下效率低多少,可以優化嗎?linq技術在下列情況下效率低多少,可以優化嗎?
LINQ的技術:
public String FindProviderName(Int32? TrueName)
{
String providerName = (from p in this.Providers
where p.TrueName == TrueName
select p.ProviderName).First().ToString();
return providerName;
}
走技術:
public String FindProviderName(Int32? TrueName)
{
String providerName = String.Empty;
foreach (IProvider provider in this.Providers)
{
if (provider.TrueName == TrueName)
{
providerName = provider.ProviderName;
break;
}
}
return providerName;
}
如果'ProviderName'是'string',你並不需要調用'的ToString()'就可以了。 – svick 2011-04-24 14:18:28
這是正確的BU編譯器會知道,而不用在IL中運行它? – CarneyCode 2011-04-24 14:20:34
@Carnotaurus它會運行它,但它只是一個callvirt來「返回這個」,所以非常快 – 2011-04-24 14:24:04