基于这个问题: linq中Where和Join的区别是什么?
我的问题如下:
以下两个陈述是否存在性能差异:
from order in myDB.OrdersSet
from person in myDB.PersonSet
from product in myDB.ProductSet
where order.Persons_Id==person.Id && order.Products_Id==product.Id
select new { order.Id, person.Name, person.SurName, product.Model,UrunAd?=product.Name };
Run Code Online (Sandbox Code Playgroud)
和
from order in myDB.OrdersSet
join person in myDB.PersonSet on order.Persons_Id equals person.Id
join product in myDB.ProductSet on order.Products_Id equals product.Id
select new { order.Id, person.Name, person.SurName, product.Model,UrunAd?=product.Name };
Run Code Online (Sandbox Code Playgroud)
我总是会使用第二个因为它更清楚.
我现在的问题是,第一个比第二个慢吗?它是否构建了一个cartesic产品并随后使用where子句对其进行过滤?
谢谢.
我有以下代码片段:
public abstract class Foo
{
protected Foo()
}
Run Code Online (Sandbox Code Playgroud)
使用protected作为访问修饰符或公共使用之间的继承是否有任何区别?
我在这种情况下大多看到使用受保护.所以有区别,为什么人们使用公众保护?
我也在Oracle Doc中搜索以下内容:
我知道它的日期是-4712,1月1日到9999年12月31日,但是对于Timestamp来说呢?
任何人可以搜索我的线索或提示吗?
我是Powershell的新手,想写一个删除目录中所有非mp3文件的脚本.
我的解决方案
get-childitem -Recurse |
Where-Object {!($_.PSIsContainer)} |
Where {$_.Extension -ne ".mp3"} |
remove-item
Run Code Online (Sandbox Code Playgroud)
可以在本声明中改进或以其他方式编写.这个陈述有什么问题吗?
谢谢.
这种模式经常出现在我们框架的一个部分中.给定一个字符串数组,我们必须连接所有这些字符串,由Semicolons分隔.
我想知道它可以用哪种优雅方式完成.我已经看到了我们的代码库中的一些变化,并且总是,当我必须这样做时,我必须重新考虑.
我目前的模式是这样的:
String[] values = new String[] {"a","b","c","d"};
String concat = String.Empty;
foreach(String s in values)
{
if(String.IsEmptyOrNullString(s) == false)
concat + = ", ";
concat += s;
}
Run Code Online (Sandbox Code Playgroud)
什么是我的if语句,我可以在循环之前插入第一个项目并从索引1开始使用for循环,但这不会增加可读性.
你有什么建议?
c# ×2
abstract ×1
class ×1
constructor ×1
date ×1
linq ×1
oracle ×1
powershell ×1
string ×1
timestamp ×1