gpt4 book ai didi

c# - 在泛型集合的泛型方法上使用表达式lambda

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:52 24 4
gpt4 key购买 nike

我试图了解以下lambda表达式的用法。该代码取自Josh Smith出色的MVVM演示代码(http://msdn.microsoft.com/zh-cn/magazine/dd419663.aspx#id0090055)。

方法称为:

AllCustomersViewModel workspace =
this.Workspaces.FirstOrDefault(vm => vm is AllCustomersViewModel)
as AllCustomersViewModel;

如在此使用的, FirstOrDefault具有以下定义,由Visual Studio 2010标识:
public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

我不清楚
  • vm如何获得其类型?它没有在对象实例的其他地方定义。
  • FirstOrDefault(vm => vm is AllCustomersViewModel)如何满足sourceFirstOrDefault参数要求?是否以某种方式暗示了这一点?

  • 我一直在尝试使用这些资源来解析:

    http://msdn.microsoft.com/en-us/library/bb397687.aspx

    http://msdn.microsoft.com/en-us/library/bb397951.aspx

    最佳答案

  • vm获得其类型,因为Workspaces是包含特定类型的集合。 vm会自动推断为该类型。
  • sourceFirstOrDefault参数为Workspaces.这是IEnumerable<T>上的extension method,因此您在其上调用的实例将替换第一个参数。这就是方法签名中的this的意思。
  • 关于c# - 在泛型集合的泛型方法上使用表达式lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4830904/

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