小编use*_*744的帖子

2D空间中重叠的线段

我需要找出两条线是否相互重叠.如果两条线是并行的,我有一个返回0的交叉码.但后来我需要知道这两条平行线是否重叠.

编辑:

A                    C       B                D
-----------------------------------------------
Run Code Online (Sandbox Code Playgroud)

第1行:AB

第2行:CD

我需要找到第1行是否与第2行重叠,但两条线的斜率都可以> 0.

language-agnostic geometry line

8
推荐指数
2
解决办法
9859
查看次数

获取没有波浪号的泛型类的名称

我想获取T使用它的类型名称:

typeof(T).Name
Run Code Online (Sandbox Code Playgroud)

这个班的名字是 ConfigSettings

而不是返回ConfigSettings它返回ConfigSettings`1.

有什么具体原因吗?如何在没有的情况下返回实际名称`1

c# generics fully-qualified-naming

8
推荐指数
2
解决办法
2686
查看次数

LINQ RemoveAll而不是循环

我有两个for循环从列表中删除项目.我正在寻找这些循环的等效LINQ语句

for (Int32 i = points.Count - 1; i >= 0; i--)
{
    for (Int32 j = touchingRects.Count - 1; j >= 0; j--)
    {
        if (touchingRects[j].HitTest(points[i], rect.TopEdge.Y1))
        {
            points.RemoveAt(i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能够做到这一点,但编译器不理解这段代码:

points.RemoveAll(p => touchingRects.Where(r => r.HitTest(p, r.TopEdge.Y1)));
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

c# linq

2
推荐指数
1
解决办法
168
查看次数

对于linq的循环

我绝对是Linq的初学者.我有一个for循环,我想转换为Linq语句.该循环基本上对正在击中边缘的矩形执行命中测试.它不包括矩形.

private List<Rectangle> GetTouchingRects(List<Rectangle> rects, Edge edgeToCheck, Rectangle exclude)
{
    List<Rectangle> hittingRects = new List<Rectangle>();

    foreach (Rectangle rect in rects)
    {
        if (rect != exclude)
        {
            if (rect.Touch(edgeToCheck))
            {
                hittingRects.Add(rect);
            }
        }
    }

    return hittingRects;
}
Run Code Online (Sandbox Code Playgroud)

我可以编写非常基本的Linq查询,但我不知道这个.我主要对如何检查排除检查以及如何执行命中测试感到困惑.

任何帮助将不胜感激.

c# linq

0
推荐指数
1
解决办法
1433
查看次数