C# 创建Lambda包含表达式

C# 创建Lambda包含表达式,c#,generics,lambda,C#,Generics,Lambda,我想创建一个类来包装结构列表 我有以下代码: public struct MyData { public int ID; public string Description; } public class MyClass { private List<MyData> data; public bool Contains(string desc) { if (data != null) {

我想创建一个类来包装结构列表

我有以下代码:

public struct MyData
{
    public int ID;
    public string Description;
}

public class MyClass
{
    private List<MyData> data;

    public bool Contains(string desc)
    {
        if (data != null)
        {
            return data.Contains(item => item.Description.Contains(desc));
        }

        return false;
    }        
}
在您的情况下,希望您向其传递一个
MyData
,如果您希望使用lambda进行比较,则使用

在您的情况下,希望您向其传递一个
MyData
,如果您希望使用lambda进行比较,则使用


原因是
ListContains
方法需要一个
T
,而您给了它一个lambda表达式,它是用
=>
创建的

你能做的是:

data.Any(item => item.Description.Contains(desc));

原因是
ListContains
方法需要一个
T
,而您给了它一个lambda表达式,它是用
=>
创建的

你能做的是:

data.Any(item => item.Description.Contains(desc));

如果您引用的是
Enumerable.Contains
它不接受lambda作为参数。如果您引用的是
Enumerable.Contains
它不接受lambda作为参数。
public bool Contains( string desc )
{
    return data != null && data.Exists( item => item.Description.Contains( desc ) );
}
data.Any(item => item.Description.Contains(desc));