我在寻找拇指规则调用ToList/ToArray/MemoizeAll(Rx)上IEnumerables,为返回的时候不是返回查询本身IEnumerable的东西.
通常我发现最好只返回查询并让调用者决定是否需要列表,但有时它会因为linq的惰性而回来并咬你.
我想收集指南,例如:
调用ToList如果:
- 你创建新对象(例如在选择中)
- 您的查询中有副作用
否则,返回查询
在以下查询中,"?"是什么 意思?
this.AdminDelCmd.CommandText =
"DELETE FROM Admin WHERE (admincd = ?) AND (terminalno = ?)";
Run Code Online (Sandbox Code Playgroud) 我有一项任务是检查一条折线是否随时自行穿越.这个检查必须非常快,因为我的折线很长(大约有50个点)并且我有一个超时.这是我写的:
public bool IsSelfCrossing()
{
if (size <= 5)
return false;
Point first = body.Points.ElementAt(size - 1);
Point second = body.Points.ElementAt(size - 2);
for (int i = 0; i < size - 3; i++)
{
if (Intersect(first, second, body.Points.ElementAt(i),
body.Points.ElementAt(i + 1)))
{
return true;
}
}
return false;
}
private double Orientation(Point p1, Point p2, Point p3)
{
double dx1 = p2.X - p1.X;
double dy1 = p2.Y - p1.Y;
double dx2 = p3.X - p1.X;
double dy2 = …Run Code Online (Sandbox Code Playgroud)