c# - 如何使用省略了 lambda 的非常短的 linq 将方法应用于所有列表成员?

标签 c# .net linq lambda method-group

假设我有一个列表,我想检查其成员是否都等于“某个字符串”:

myList.All(v => v.Equals("some string"))

我认为这会做同样的事情(或者会吗?!):

myList.All("some string".Equals)

但是如果我想使用自己的方法而不是 .Equals 呢?

public bool LessThan16Char(string input)
{
    return (input.Length < 16);
}

如何用 LessThan16Char 替换 .Equals


如果该方法有第二个参数(例如 lessthan(string Input, Int lessThanVal))怎么办

如果网络上有任何描述这类事情的文章,我也很感激,谢谢。

最佳答案

你可以直接调用它:

public Class1()
{
    var myList = new List<string>();
    var foo = myList.All(LessThan16Char);
}

如果您需要第二个参数,那么您将需要 lambda:

public Class1()
{
    var myList = new List<string>();
    var foo = myList.All(l=>LessThan16Char(l,16));
}


public bool LessThan16Char(string input, int max)
{
    return (input.Length < max);
}

关于c# - 如何使用省略了 lambda 的非常短的 linq 将方法应用于所有列表成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36906470/

相关文章:

c# - 总和列表到新列表

c# - 没有给定的参数对应于所需的形式参数 - .NET 错误

c# - LINQ 传递 UTC 日期还是使用 DateTime.UtcNow?

c# - 如何使用 LinQ 按值分组获取字典中的键列表

.net - 某些图像无法在 Windows Server 2008 上加载

c# - LINQ 命名标准 - Lambda 表达式

c# - 在与母版页不同的文件夹中显示 aspx 页面时出现问题

c# - 如何编写一个函数来确定一个键是否按下并经过延迟?

c# - C# 中的可事务对象?

.net - 寻找基于 .NET (SQL-Server) 的测试管理工具