小编use*_*325的帖子

Linq中没有return关键字的Func <int,bool>?

使用Linq时我偶然发现了以下表达式:

bool biggerThan10Exists = numbers.Any(n => n > 10);
Run Code Online (Sandbox Code Playgroud)

Any的定义如下:

public static bool Any<TSource>(
    this IEnumerable<TSource> source,
    Func<TSource, bool> predicate
)
Run Code Online (Sandbox Code Playgroud)

Func的定义如下:

public delegate TResult Func<in T, out TResult>(
        T arg
)
Run Code Online (Sandbox Code Playgroud)

因此,如果Any需要一个Func,它需要传递一个返回 int的委托,那么我怎么能传递一个lambda表达式,在我看来是一个void委托的定义,即

n => n > 10
Run Code Online (Sandbox Code Playgroud)

虽然我期待

n => return n > 10
Run Code Online (Sandbox Code Playgroud)

我很确定我明显错过了什么,但是什么?

c# linq lambda

3
推荐指数
1
解决办法
616
查看次数

访问从属性自动生成的值类型

在谈论自动生成的属性时,大多数示例都会讨论"简单"的值类型,例如字符串.但是,如果您想要访问IL中自动生成的这种值类型的字段以备份"自动属性",该怎么办?

编译器不允许这样做:"不能修改'Position'的返回值,因为它不是变量".我理解为什么我们不能修改这个返回值,但是我们如何访问这些字段呢?

说我们有

class A
{
    Vector2 Position { get; set; }

    public void Foo()
    {
        Position.X = 10.0f;    // Not allowed!
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在A类中访问和设置Vector2实例的字段X?

c# properties

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

为什么AngleSharp不为交错文本生成TextNodes?

我正在尝试使用AngleSharp库解析一些HTML,这个库到目前为止一直很棒.我现在偶然发现了一个我要解析以下HTML的场景:

<a name="someLink" href="#someLink">Link 1</a>
Some text that happens to be in between elements...
<b>Some stuff in bold</b>
Some more text
<br>
Run Code Online (Sandbox Code Playgroud)

当然,这段HTML包含了父元素等,但是这段HTML的解析元素的结果列表是:

  • HtmlAnchorElement
  • HtmlBoldElement
  • HtmlBreakRowElement

有效地跳过元素之间的文本.我如何获得此文本?我认为AngleSharp会为这些部分生成TextNodes吗?

请注意,获取父级的完整TextContent不是我想要做的,因为我实际上仍然需要元素的结构来知道什么是什么.

html c# parsing text anglesharp

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

标签 统计

c# ×3

anglesharp ×1

html ×1

lambda ×1

linq ×1

parsing ×1

properties ×1

text ×1