Gae*_*anu 6 c# generics lambda extension-methods
我想编写一个函数,可以在将值插入List之前完成一些检查.例如:
class Person {
public string Name { get; set; }
public int Value { get; set; }
public Guid Id { get; set; }
}
-------
var persons = new List<Person>();
// add a new person if John doesn't exist
persons.AddIf(s => !s.Name.Equals("John"), new Person { ... });
----
public static void AddIf(this List<T> lst, Func<T, bool> check, T data)
{
// how can I use the Func 'check' to check if exist an object with the
// information that the client wrote and, if not exists, insert the new value
// into the list???
if ( check )
}
Run Code Online (Sandbox Code Playgroud)
如何使用Func'check'检查是否存在具有客户端写入信息的对象,如果不存在,则将新值插入列表中?
Ser*_*kiy 11
您需要使您的方法通用.
public static void AddIf<T>(this List<T> lst, Func<T, bool> check, T data)
{
if (!lst.All(check))
return;
lst.Add(data);
}
Run Code Online (Sandbox Code Playgroud)
和你想要的用法(所有项目都应该满足谓词):
persons.AddIf(s => !s.Name.Equals("John"), new Person { ... });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1355 次 |
| 最近记录: |