如何将一个方法应用于所有列表成员使用非常短的linq并省略lambda?

Sae*_*eid 2 .net c# linq lambda method-group

假设我有一个List,我想检查成员是否都等于"some string":

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

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

myList.All("some string".Equals)

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

public bool LessThan16Char(string input)
{
    return (input.Length < 16);
}
Run Code Online (Sandbox Code Playgroud)

如何更换.Equals使用LessThan16Char


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

我还要感谢网上描述这些事情的任何文章,谢谢.

wei*_*mat 6

你可以直接调用它:

public Class1()
{
    var myList = new List<string>();
    var foo = myList.All(LessThan16Char);
}
Run Code Online (Sandbox Code Playgroud)

如果您需要第二个参数,则需要使用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);
}
Run Code Online (Sandbox Code Playgroud)