gpt4 book ai didi

c# - 扩展方法、T的Func和T的List

转载 作者:太空狗 更新时间:2023-10-29 21:09:42 26 4
gpt4 key购买 nike

我想编写一个函数,在将值插入列表之前完成一些检查。例如:

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

如何使用 Func“检查”来检查是否存在具有客户端写入的信息的对象,如果不存在,则将新值插入列表中?

最佳答案

您需要使您的方法通用。

public static void AddIf<T>(this List<T> lst, Func<T, bool> check, T data)
{
if (!lst.All(check))
return;

lst.Add(data);
}

和你想要的用法(所有项目都应该满足谓词):

persons.AddIf(s => !s.Name.Equals("John"), new Person { ... });

关于c# - 扩展方法、T的Func和T的List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13374138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com