gpt4 book ai didi

c# - OfType() 是如何工作的?

转载 作者:太空狗 更新时间:2023-10-29 18:26:03 27 4
gpt4 key购买 nike

OfType() 是如何工作的?

我读了this link关于发生了什么,但 LINQ 提供程序究竟如何知道如何获取与指定类型匹配的所有对象。我知道 IQueryable<T> “链接”请求,然后在 GetEnumerator() 时进行评估被称为(对吗?)。

具体我想知道框架是如何快速进行类型比较的?我在 .NET 2.0 项目中编写了一个方法,它是这样的(因为 2.0 不支持这些类型的功能):

    public IEnumerable<TResult> OfType<TResult>()
where TResult : class
{
foreach (TItem item in this.InnerList)
{
TResult matchItem = item as TResult;

if (matchItem != null)
{
yield return matchItem;
}
}
}

这是最好的实现吗?

编辑:我主要关心这个OfType<T>()是它

最佳答案

您当前的实现——按设计——不支持值类型。

如果你想要更接近 LINQ 的 OfType 方法,支持所有类型,那么试试这个:

public IEnumerable<TResult> OfType<TResult>(IEnumerable source)
{
foreach (object item in source)
{
if (item is TResult)
yield return (TResult)item;
}
}

关于c# - OfType<T>() 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2833714/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com