c# - LINQ 身份函数

标签 c# linq lambda linq-to-objects

关于 LINQ 语法的一些小问题。我正在展平 IEnumerable<IEnumerable<T>>SelectMany(x => x) .

我的问题是 lambda 表达式 x => x .它看起来有点难看。是否有一些我可以使用的静态“身份函数”对象而不是 x => x ?类似于 SelectMany(IdentityFunction)

最佳答案

除非我误解了这个问题,否则以下内容在 C# 4 中对我来说似乎工作正常:

public static class Defines
{
   public static T Identity<T>(T pValue)
   {
      return pValue;
   }

   ...

然后您可以在示例中执行以下操作:

var result =
   enumerableOfEnumerables
   .SelectMany(Defines.Identity);

除了在任何地方使用 Defines.Identity 外,您还可以使用看起来像 x => x 的 lambda。

关于c# - LINQ 身份函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466689/

相关文章:

c# - Fluent-NHibernate 多对多级联不填充链接表

c# - 是 type.isSubclassOf(Type otherType) 缓存还是我必须自己做?

c# - 模拟函数返回其输入时出现 TargetParameterCountException

Javascript:调用 lambda 函数或直接表达式之间的区别?

c# - 移动断点 Visual Studio 2010

c# - 在不使用自定义组件的情况下,使用SFTP连接到远程服务器并下载文件是否可行?

c# - 如何从表达式属性中获取名称?

java - 使用 NativeMethodAccessor 而不是 GeneratedMethodAccessor 时缺少 Lambda 堆栈跟踪

c# - 如何将 IEnumerable<IEnumerable<T>> 转换为 List<string>?

c# - 为什么 IEnumerable<T> 中的元素有时是可变的,有时是不可变的?