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));